ifelse
产生NA m <- tracking_new_table$CowId=="807439"
ifelse (m==T , tracking_new_table$V1=="8","")
满足条件时,我应该在VI列中获得“ 8”。相反,我得到了NA´s。在其他不满足条件的行中,我得到的是“”。 数据
答案 0 :(得分:1)
就像在评论中指出的那样,如果没有可复制的示例,很难确切地知道您想要什么。
您似乎正在尝试在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", "")
答案 1 :(得分:0)
可能您需要的是
tracking_new_table$V1 <- ifelse (m, 8,"")
也可以通过
完成tracking_new_table$V1 <- c("", 8)[m + 1]
答案 2 :(得分:0)