R-了解&&的行为

时间:2019-11-04 03:41:08

标签: r logical-operators

为什么c(T, T, T) && c(NULL, F, F)评估为[1] FALSE但为什么T && NULL抛出错误Error in T && NULL : invalid 'y' type in 'x && y'

在第一个示例中,&&似乎跳过了第一对参数T && NULL并返回了第二对参数的求值T && F。但是我总是给人一种印象,&&仅评估第一对,因此可以预测它会像第二个示例中一样抛出错误。

1 个答案:

答案 0 :(得分:1)

Null不是有效的布尔类型。您应该使用is.null()

结果是:

 > c(NULL, F, F)
[1] FALSE FALSE

所以我建议使用is.null()

> is.null(NULL)
[1] TRUE