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

In R, (F & NA) is F but (T & NA) is NA -- why?

为什么 R 会这样?

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

我希望代码的第一行的计算结果也为 NA。人们告诉我 'this is simply strange behavior of R',但是否有其他概念?

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

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