在R中,(F&NA)是F但(T&NA)是NA-为什么?

时间:2019-02-12 16:40:47

标签: r logical-operators na

R中为什么会这样?

> F & NA
[1] FALSE
> T & NA
[1] NA

我希望代码的第一行也能评估为NA。人们告诉我“这仅仅是R的奇怪行为”,但是还有其他概念吗?

1 个答案:

答案 0 :(得分:6)

如果您具有AND({&)语句,并且其中一个值是false,那么另一个值无关紧要,则答案将是false。 NA值表示缺少值,但是未观察到的值必须为true或false,并且无论哪种方式都将返回false。

但是,如果其中一个值为true,则仅当第二个值也为true时,AND才为true。但是,在这种情况下,缺失值(NA)可以为true或false,因此无法确定表达式是否为真。因此,R必须传播NA值。