> v <- c(1,2,NA,5)
> is.na(v)
[1] FALSE FALSE TRUE FALSE
> !is.na(v)
[1] TRUE TRUE FALSE TRUE
>
> !is.na(v) %>% all()
[1] TRUE
> all(!is.na(v))
[1] FALSE
> (!is.na(v)) %>% all()
[1] FALSE
如果没有括号,%>%
将全部()应用于is.na(v)
,然后应用!
运算符。为什么它在这里有这样的操作顺序,对于其他功能/操作员我应该对此感到厌倦?
答案 0 :(得分:2)
magrittr提供了一个set of operators,它的链接效果更好。所以,你可以使用
"Validated_Versions":[{"id":9,"version":{}},{"id":10,"version":{}},{"id":12,"version":{}}]
建议
...在管道链中使用非magrittr运算符时,建议特别注意 (+, - ,$等),因为运算符优先级将影响链的计算方式。一般来说是 建议使用magrittr提供的别名。