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

tom*_*mka 2 r logical-operators na

为什么这样R呢?

> F & NA
[1] FALSE
> T & NA
[1] NA
Run Code Online (Sandbox Code Playgroud)

我希望代码的第一行也可以进行评估NA.人们告诉我'这只是R'的奇怪行为,但还有其他一些概念吗?

MrF*_*ick 6

如果你有一个AND(&)语句并且其中一个值为false,那么另一个值是什么并不重要,答案将是假的.该NA值表示缺少值,但未观察到的值必须为true或false,并且无论哪种方式都会返回错误.

但是如果其中一个值为true,那么只有当第二个值也为真时,AND才会为真.但是在这种情况下,缺失值(NA)可能是真或假,因此无法确定表达式是否为真.因此,R必须传播NA值.