是否可以在不两次调用数据集的情况下将数据集管道化为两个函数?

时间:2019-06-13 15:44:39

标签: r magrittr

R中,假设我有一个数据集,并且我想运行函数str()summary()

我将在R基中执行此操作。

summary(data)
str(data)

如果我使用magrittr或整个tidyverse套件,我更喜欢这样做。

data %>% str()
data %>% summary()

但是,我不得不说两次data,这是我不喜欢的。当然,现在

data %>%
str() %>%
summary()

不起作用,因为这不是管道的工作原理。

有没有一种方法可以使用某些运算符或函数,使我只需要调用一次data

2 个答案:

答案 0 :(得分:4)

您可以使用implicit val richIndicateCoder = Coder.beam(RicherIndicatorCoder)“三通管”

magrittr

如果您对“高级”管道感兴趣,请查看文档。 magrittr vignette显示了library(magrittr) mtcars %T>% str %>% summary %T>%%$%以及专用吹笛者的其他便利功能的示例。

答案 1 :(得分:0)

如果您希望保留结果:

library(tidyverse)
mtcars %>% 
  map(lst(nrow, ncol), ~.(.y), .)
#> $nrow
#> [1] 32
#> 
#> $ncol
#> [1] 11