嵌套函数缺少参数 - magrittr 错误

问题描述

这可能违背 magrittr (ref1,ref2) 的哲学

仍然,magrittr 在最简单的嵌套函数中抛出错误

x <- c(3,1,2,3) %>%
  sort(unique())
## Error in is.factor(x) : argument "x" is missing,with no default
x <- c(3,3) %>%
  sort(unique(.))
## Error in sort(.,unique(.)) : 
##   'decreasing' must be a length-1 logical vector.
## Did you intend to set 'partial'?

谁能解释这种行为或如何避免它?

解决方法

我想我可以提供部分答案(关于如何避免这种行为)。

只需将嵌套的函数调用括在大括号中,如下所示:

c(3,1,2,3) %>% {sort(unique(.),decreasing = FALSE)}
# [1] 1 2 3

至于为什么会这样,在 ?magrittr::%>%\ 中有解释。