R 拆分管道,使输出转到两个单独的命令

R 拆分管道,使输出转到两个单独的命令,r,tidyr,magrittr,R,Tidyr,Magrittr,我正在学习tidyverse,我喜欢管道操作员提供的流量。我想知道,是否可以拆分一个管道,以便管道一部分的输出可以发送到两个单独的命令?我对此做了一些研究,但没有发现这是可能的。这样,你就不用做这样的事情了,你必须节省第一步 iris_filter <- iris %>% filter(Sepal.Length <= 5.8) iris_filter %>% summarise(n= n()) iris_filter %>% arrange(S

我正在学习tidyverse,我喜欢管道操作员提供的流量。我想知道,是否可以拆分一个管道,以便管道一部分的输出可以发送到两个单独的命令?我对此做了一些研究,但没有发现这是可能的。这样,你就不用做这样的事情了,你必须节省第一步

iris_filter <- iris %>% 
  filter(Sepal.Length <= 5.8)

iris_filter %>% 
  summarise(n= n())

iris_filter %>% 
  arrange(Sepal.Length)
iris\u过滤器%
过滤器(萼片长度%
总结(n=n())
虹膜过滤器%>%
排列(萼片长度)

您是否可以将
filter
传递给两个单独的命令,并沿着两个不同的管道路径继续执行?可以用一个小图像来澄清我的疑问。

我认为这是不可能的。一个解决方法是在完整的数据帧中保存中间值,例如:

iris %>% 
  add_tally() %>%
  filter(Sepal.Length <= 5.8) %>%
  arrange(Sepal.Length)

   Sepal.Length Sepal.Width Petal.Length Petal.Width Species     n
          <dbl>       <dbl>        <dbl>       <dbl> <fct>   <int>
 1          4.3         3            1.1         0.1 setosa    150
 2          4.4         2.9          1.4         0.2 setosa    150
 3          4.4         3            1.3         0.2 setosa    150
 4          4.4         3.2          1.3         0.2 setosa    150
 5          4.5         2.3          1.3         0.3 setosa    150
iris%>%
添加计数()%>%
过滤器(萼片长度%
排列(萼片长度)
萼片。长萼片。宽花瓣。长花瓣。宽种n
1 4.3 3 1.1 0.1 setosa 150
2.4.2.9 1.4 0.2 setosa 150
3 4.4 3 1.3 0.2 setosa 150
4.4.3.2 1.3 0.2 setosa 150
5 4.5 2.3 1.3 0.3 setosa 150
在这里,您可以使用诸如
add_tally()
add_count(group1,group2,…)
之类的函数,它们基本上等同于更详细的
mutate(n=n())
,和
groupby(group1,group2,…)%%>%mutate(n=n())


您可以始终使用存储的值进行进一步的计算/图表。

您正在寻找的似乎是来自
magrittr
-包的
%T>%
运算符

但是,对于该特定问题,我将编写一个输出原始数据的自定义函数:

库(tidyverse)
自定义功能%
打印()
返回(x)
}
虹膜%>%
过滤器(萼片长度%
自定义.函数()%>%
排列(萼片长度)
#>n
#> 1 80
#>萼片。长萼片。宽花瓣。长花瓣。宽种
#>1 4.3 3.0 1.1 0.1刚毛
#>2.4.2.9 1.4 0.2刚毛
#>3.4.3.0 1.3 0.2刚毛
#>4.4.3.2 1.3 0.2刚毛
#>5 4.5 2.3 1.3 0.3刚毛
#>6 4.6 3.1 1.5 0.2刚毛
#>7.4.6 3.4 1.4 0.3刚毛
#>8 4.6 3.6 1.0 0.2刚毛
#>9 4.6 3.2 1.4 0.2刚毛
#>10 4.7 3.2 1.3 0.2刚毛
#>11 4.7 3.2 1.6 0.2刚毛
#>12 4.8 3.4 1.6 0.2刚毛
#>13 4.8 3.0 1.4 0.1刚毛
#>14 4.8 3.4 1.9 0.2刚毛
#>15 4.8 3.1 1.6 0.2刚毛
#>16 4.8 3.0 1.4 0.3刚毛
#>17 4.9 3.0 1.4 0.2刚毛
#>18 4.9 3.1 1.5 0.1刚毛
#>19 4.9 3.1 1.5 0.2刚毛
#>20 4.9 3.6 1.4 0.1刚毛
#>21 4.9 2.4 3.3 1.0彩色
#>22 4.9 2.5 4.5 1.7弗吉尼亚州
#>23 5.0 3.6 1.4 0.2刚毛
#>24 5.0 3.4 1.5 0.2刚毛
#>25 5.0 3.0 1.6 0.2刚毛
#>26 5.0 3.4 1.6 0.4刚毛
#>27 5.0 3.2 1.2 0.2刚毛
#>28 5.0 3.5 1.3 0.3刚毛
#>29 5.0 3.5 1.6 0.6刚毛
#>30 5.0 3.3 1.4 0.2刚毛
#>31 5.0 2.0 3.5 1.0彩色
#>32 5.0 2.3 3.3 1.0彩色
#>33 5.1 3.5 1.4 0.2刚毛
#>34 5.1 3.5 1.4 0.3刚毛
#>35 5.1 3.8 1.5 0.3刚毛
#>36 5.1 3.7 1.5 0.4刚毛
#>37 5.1 3.3 1.7 0.5刚毛
#>38 5.1 3.4 1.5 0.2刚毛
#>39 5.1 3.8 1.9 0.4刚毛
#>40 5.1 3.8 1.6 0.2刚毛
#>41 5.1 2.5 3.0 1.1彩色
#>42 5.2 3.5 1.5 0.2刚毛
#>43 5.2 3.4 1.4 0.2刚毛
#>44 5.2 4.1 1.5 0.1刚毛
#>45 5.2 2.7 3.9 1.4彩色
#>46 5.3 3.7 1.5 0.2刚毛
#>47 5.4 3.9 1.7 0.4刚毛
#>48 5.4 3.7 1.5 0.2刚毛
#>49 5.4 3.9 1.3 0.4刚毛
#>50 5.4 3.4 1.7 0.2刚毛
#>51 5.4 3.4 1.5 0.4刚毛
#>52 5.4 3.0 4.5 1.5彩色
#>53 5.5 4.2 1.4 0.2刚毛
#>54 5.5 3.5 1.3 0.2刚毛
#>55 5.5 2.3 4.0 1.3彩色
#>56 5.5 2.4 3.8 1.1彩色
#> 57          5.5         2.4