%运算符中的R%

dpl*_*net 65 r

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

> 1:6 %in% 0:36
[1] TRUE TRUE TRUE TRUE TRUE TRUE
Run Code Online (Sandbox Code Playgroud)

这显然是产生逻辑向量.我已经阅读了文档,但似乎找不到基于结果返回标量的运算符,这样1:6 %in% 0:36只会在返回TRUE0:37 %in% 0:36返回FALSE.

有人存在吗?

nic*_*ico 104

您可以使用 all

> all(1:6 %in% 0:36)
[1] TRUE
> all(1:60 %in% 0:36)
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

在类似的说明中,如果要检查是否有任何元素为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
Run Code Online (Sandbox Code Playgroud)

  • 另外,你可以通过在所有中包装匹配来定义你自己的运算符:`%allin%`< - function(x,table){all(match(x,table,nomatch = 0L)> 0L)} (16认同)