NA == 1检查返回NA

时间:2016-08-22 11:23:06

标签: r logical-operators na

有人可以解释一下原因:

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上逻辑运算的合理性。

1 个答案:

答案 0 :(得分:4)

NA只是意味着一个值缺失/未知。因此NA == 1会产生NA。与==进行比较的结果未知,因为我们不知道缺失值是1还是其他。

同样的推理可以应用于其他测试,这就是为什么他们都返回NA

正如@akrun在评论中所指出的,检查值x是否缺失的正确方法是使用函数is.na(x)。类型x == NA的比较不会产生预期的结果。