在R
中为什么会这样?
> F & NA
[1] FALSE
> T & NA
[1] NA
我希望代码的第一行也能评估为NA
。人们告诉我“这仅仅是R的奇怪行为”,但是还有其他概念吗?
答案 0 :(得分:6)
如果您具有AND({&
)语句,并且其中一个值是false,那么另一个值无关紧要,则答案将是false。 NA
值表示缺少值,但是未观察到的值必须为true或false,并且无论哪种方式都将返回false。
但是,如果其中一个值为true,则仅当第二个值也为true时,AND才为true。但是,在这种情况下,缺失值(NA)可以为true或false,因此无法确定表达式是否为真。因此,R必须传播NA值。