为什么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
。但是我总是给人一种印象,&&
仅评估第一对,因此可以预测它会像第二个示例中一样抛出错误。
答案 0 :(得分:1)
Null不是有效的布尔类型。您应该使用is.null()
。
结果是:
> c(NULL, F, F)
[1] FALSE FALSE
所以我建议使用is.null()
> is.null(NULL)
[1] TRUE