如果条件向量包含NA,是否有办法获得条件下标? 假设我有一个像这样的data.frame
dframe <- data.frame(a=c(1,32,4,5,8),b=c(1,2,3,4,5),d=c(NA,5,5,10,9))
dframe[dframe$d > 9,"a"] <- NA
如果不是dframe $ d中的NA,这将是直截了当的。我看过像here这样的%in%
语法来绕过NAs,但不知道如何管理条件。
我可以看出这是一个普遍的问题,因为我不太确定我是否想在条件或其他东西中获得缺失值的NA。
但我也有兴趣了解人们如何处理这种情况。
在我的具体情况中,如果在这种情况下NA被视为FALSE,那将会很有帮助。
答案 0 :(得分:5)
你很亲密。你有条件和%in%
。只是没有链接。实际上很简单。只需将%in%
与TRUE
一起使用,它就会返回所有其他值,其中NA
将替换为FALSE
dframe[(dframe$d > 9) %in% TRUE, "a"] <- NA
答案 1 :(得分:5)
您可以将索引限制为非NA值
dframe[dframe$d > 9 & !is.na(dframe$d),"a"] <- NA