ifelse函数为什么会产生NA

ifelse产生NA

m <- tracking_new_table$CowId=="807439"
ifelse (m==T,tracking_new_table$V1=="8","")

满足条件时,我应该在VI列中获得“ 8”。相反,我得到了NA´s。在其他不满足条件的行中,我得到的是“”。 数据

lkf1983 回答:ifelse函数为什么会产生NA

就像在评论中指出的那样,如果没有可复制的示例,很难确切地知道您想要什么。

您似乎正在尝试在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]
,
    根据测试条件,
  • ifelse返回两个值之一。 它不是执行代码段之一或 基于条件的两个代码段。
本文链接:https://www.f2er.com/3146086.html

大家都在问