这个问题在这里已有答案:
为什么在R
这样呢?
> F & NA
[1] FALSE
> T & NA
[1] NA
我希望代码的第一行也可以评估为NA
。人们告诉我'这只是R'的奇怪行为,但还有其他一些概念吗?
如果你有一个AND(&
)语句,其中一个值为false,那么另一个值是什么并不重要,答案就是假的。 NA
值意味着缺少一个值,但是未观察到的值必须是true或false,并且无论哪种方式都会返回错误。
但是如果其中一个值为true,那么只有当第二个值也为真时,AND才会为真。但是在这种情况下,缺失值(NA)可能是真或假,因此无法确定表达式是否为真。因此,R必须传播NA值。