首页 > 解决方案 > R - 理解 && 的行为

问题描述

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

它看起来像在第一个示例中,&&跳过第一对参数T && NULL并返回第二对的评估T && F。但我一直认为&&只评估第一对,因此会预测它会像第二个示例中那样抛出错误。

标签: rlogical-operators

解决方案


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

结果是:

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

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

> is.null(NULL)
[1] TRUE

推荐阅读