有没有办法使用magrittr管道运算符%>%来获得多个输出?

时间:2017-02-24 01:26:35

标签: r magrittr

我想知道是否有办法使用R中的magrittr包来实现单个输入的多个输出,以便您可以实现此输出:

rnorm(30) %>%
mean

rnorm(30) %>%
median

无需再拨打rnorm(30)

1 个答案:

答案 0 :(得分:2)

将它们放在一个矢量中:

rnorm(30) %>% { c(mean = mean(.), median = median(.)) }
#       mean     median 
# -0.2477345 -0.1126395 

花括号是这里的关键。没有它们,你将获得rnorm(30)向量,其中均值和中值连接到最后。

另一种选择是编写自己的函数。

f <- function(x) c(mean = mean(x), median = median(x))
rnorm(30) %>% f
#        mean      median 
# -0.12908354 -0.06667819