有人能解释一下为什么:
NA == 1 #NA #expect FALSE
NA == NA #NA #expect TRUE
1 == NA #NA #expect FALSE
NA == TRUE #NA #expect FALSE这种用法的一个活生生的例子是df[df$SomeAttribute == 1,],其中一些df$SomeAttribute具有NA值。
我知道人们可以使用which(df$SomeAttribute == 1),只是质疑NA上逻辑操作的正确性。
发布于 2016-08-22 11:27:13
NA仅仅意味着一个值丢失/未知。因此,NA == 1产生NA。与==比较的结果是未知的,因为我们不知道缺少的值是1还是其他什么。
同样的推理也适用于其他测试,这就是为什么它们都返回NA的原因。
正如@akrun在注释中指出的那样,检查值x是否缺失的正确方法是使用函数is.na(x)。x == NA类型的比较不会给出所需的结果。
https://stackoverflow.com/questions/39078276
复制相似问题