如何处理包含NA的条件data.frame下标?

时间:2013-02-06 17:23:28

标签: r conditional-statements missing-data na

如果条件向量包含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,那将会很有帮助。

2 个答案:

答案 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