R - 了解 && 的行为

R - Understanding the behaviour of &&

为什么 c(T, T, T) && c(NULL, F, F) 计算结果为 [1] FALSET && NULL 抛出错误 Error in T && NULL : invalid 'y' type in 'x && y'

看起来在第一个示例中,&& 跳过了第一对参数 T && NULL,returns 跳过了第二对参数 T && F 的计算。但我一直觉得 && 只评估第一对,所以会预测它会像第二个例子中那样抛出错误。

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

结果是:

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

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

> is.null(NULL)
[1] TRUE