R管道逻辑运算符

0 expression r

如何将管道%>%与逻辑链一起使用而不必放{}所有东西?
好吧,这个示例非常基础,但是如果您链接多个逻辑表达式,那么在所有包围中都会变得非常讨厌,因此我想不惜一切代价避免使用括号。

rep(T,10) & rep(F,10) %>% sum
Run Code Online (Sandbox Code Playgroud)

预期:

0
Run Code Online (Sandbox Code Playgroud)

我得到了什么:

[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)

Jam*_*mes 6

管道的优先级高于&。首先使用括号将其强制执行。

(rep(T,10) & rep(F,10)) %>% sum
[1] 0
Run Code Online (Sandbox Code Playgroud)

请参阅?Syntax以获取运算符优先级的列表。

如果必须避免使用方括号,则需要使用具有相同或更高优先级的运算符(例如,另一个管道)以及逻辑运算符的功能形式:

rep(T,10) %>% and(rep(F,10)) %>% sum
[1] 0
Run Code Online (Sandbox Code Playgroud)