那 == 1 检查 returns 那
NA == 1 check returns 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
简单的表示一个值是missing/unknown。因此 NA == 1
产生 NA
。与 ==
比较的结果是未知的,因为我们不知道缺失值是 1
还是其他。
同样的推理可以应用于其他测试,这就是为什么它们都是 return NA
.
正如@akrun 在评论中指出的,检查值 x
是否缺失的正确方法是使用函数 is.na(x)
。 x == 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
简单的表示一个值是missing/unknown。因此 NA == 1
产生 NA
。与 ==
比较的结果是未知的,因为我们不知道缺失值是 1
还是其他。
同样的推理可以应用于其他测试,这就是为什么它们都是 return NA
.
正如@akrun 在评论中指出的,检查值 x
是否缺失的正确方法是使用函数 is.na(x)
。 x == NA
类型的比较不会给出所需的结果。