magrittr 三通管 %T>% 等效

magrittr tee pipe %T>% equivalent

我正在查看文档中 magrittr 三通管 %T>% 的示例,但我没有立即了解它在做什么。有人可以显示没有三通管的等效代码吗?

rnorm(200) %>%
matrix(ncol = 2) %T>%
plot %>% # plot usually does not return anything. 
colSums

我们可以将其包装在 {} 中以获得等效的输出

library(dplyr)
rnorm(200) %>%
   matrix(ncol = 2)  %>% 
      { plot(.)
       colSums(.)
    }

注意:这是首先与 {}

一起发布的

%T>% 大概是以管道中使用的 T 形分管器命名的。

如果我们将问题中的 plot 行替换为下面显示的 plot 行(并用双哈希标记),我们可以将 %T>% 替换为 %>% .这会绘制其输入,然后将输入转发到输出,以便管道可以继续。

rnorm(200) %>%
  matrix(ncol = 2) %>%
  { plot(.); . } %>%    ##
  colSums

因此处理过程如下图所示:

rnorm --> matrix --T--> colSums
                   |
                   v
                  plot