R语言中的 %in% 运算符

69

R 中,我正在运行以下脚本:

> 1:6 %in% 0:36
[1] TRUE TRUE TRUE TRUE TRUE TRUE
很明显这段代码生成了一个逻辑向量。我已经阅读了文档但是不知道有什么运算符可以基于结果返回一个标量,例如1:6 %in% 0:36只会简单地返回TRUE,而0:37 %in% 0:36则会返回FALSE。是否存在这样的运算符?
1个回答

107

你可以使用all

> all(1:6 %in% 0:36)
[1] TRUE
> all(1:60 %in% 0:36)
[1] FALSE

类似地,如果您想检查任何元素是否为 TRUE,则可以使用any

> any(1:6 %in% 0:36)
[1] TRUE
> any(1:60 %in% 0:36)
[1] TRUE
> any(50:60 %in% 0:36)
[1] FALSE

17
此代码片段定义了一个名为 %allin% 的自定义运算符,其作用是将向量 x 中的每个元素与数据表 table 进行匹配,并返回一个逻辑值指示是否所有元素都在数据表中找到了相应的匹配项。其中使用了函数 match() 进行匹配,nomatch 参数设置为 0L 表示没有匹配项时返回 0。 - joran

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接