在 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 值。
为什么 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 值。