r - NA == 1 检查返回 NA

标签 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 上逻辑操作的合理性。

最佳答案

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

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


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

关于r - NA == 1 检查返回 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39078276/

相关文章:

php - "<>"和 "!="有什么区别?

r - NA在boxplot ggplot2中绘制

r - 如何确保两层 geom_point 正确对齐?

r - 更改图例中的线条长度

r - 为什么 R(在我的示例中)处理日期/日期时间非常慢?

c++ - 如何比较 char 或 string 变量是否等于某个字符串?

c - .C 到 R 的接口(interface)

javascript - 在循环中使用逻辑运算符会导致矛盾

r - For 循环不使用 r 插入矩阵中的缺失值

R 通过查找字典来替换列