在 R 中对数据进行子集化时生成 NA

NA's generated when subsetting data in R

我遇到了这个问题,这让我发疯。我尝试使用以下命令在 R 中过滤数据:

data <- data[data$v1 != "T",]

只要过滤后的数据包含所需的行数,这就有效。但是,由于 "v1" 包含 NA,过滤前所有 v1 = NA 的观察结果现在仅包含所有列中的 NA。

有人知道为什么会这样吗?

已经非常感谢了。

NA 与实际值不可比。 'is this equal to "T"' 的答案是 idk,所以整行都变成了 NA。避免它的方法是按照@akrun 的建议排除 NA,或者如果您希望保留这些行,则显式查找 NA:

data[data$v1 != "T" | is.na(data$v1),]