ifelse
产生NA
m <- tracking_new_table$CowId=="807439"
ifelse (m==T,tracking_new_table$V1=="8","")
满足条件时,我应该在VI列中获得“ 8”。相反,我得到了NA´s。在其他不满足条件的行中,我得到的是“”。 数据
ifelse
产生NA m <- tracking_new_table$CowId=="807439"
ifelse (m==T,tracking_new_table$V1=="8","")
满足条件时,我应该在VI列中获得“ 8”。相反,我得到了NA´s。在其他不满足条件的行中,我得到的是“”。 数据
就像在评论中指出的那样,如果没有可复制的示例,很难确切地知道您想要什么。
您似乎正在尝试在ifelse
语句中进行赋值。我不确定这是否是问题所在。如果CowID
是类整数,则您试图匹配的CowID
数字附近使用引号也可能导致问题,但是通过使用引号将其变成类字符。
但是,您可以执行以下操作(请注意,我将CowID
视为整数/数字,而将V1
视为字符):
tracking_new_table <- data.frame(
CowID = c(32394,807439,967094,926699),V1 = c("","","")
)
m <- tracking_new_table$CowID == 807439
# This will replace the value in V1
tracking_new_table$V1 <- ifelse(m == T,"8","")
,
可能您需要的是
tracking_new_table$V1 <- ifelse (m,8,"")
也可以通过
完成tracking_new_table$V1 <- c("",8)[m + 1]
,