相关疑难解决方法(0)

在每个过滤步骤打印数据框尺寸

我使用tidyverse来过滤掉一个数据帧,并希望在中间对象的尺寸(或nrows)的每一步打印.我以为我可以简单地使用magrittr的三通管道操作员,但它不起作用.我想我理解发球管背后的概念,但无法弄清楚出了什么问题.我进行了广泛的搜索,但没有找到太多关于三通管的资源.

我用mtcars数据集构建了一个简单的例子.如果我用dim()或nrow()替换,则打印中间对象可以正常工作.

library(tidyverse)
library(magrittr)

mtcars %>% 
    filter(cyl > 4) %T>% dim() %>%
    filter(am == 0) %T>% dim() %>%
    filter(disp >= 200) %>% dim()
Run Code Online (Sandbox Code Playgroud)

我当然可以在R base中写这个但是想坚持整齐的精神.我可能看到了关于T恤管概念的一些内容,我们将非常感谢任何评论/解决方案.

编辑: 关注@hrbrmstr和@akrun很好和快速的答案,我再次尝试坚持tee管道操作员而不编写函数.我不知道为什么我之前没有找到答案,但这里是我正在寻找的语法:

mtcars %>% filter(cyl > 4) %T>% {print(dim(.))} %>% filter(am == 0) %T>% {print(dim(.))} %>% filter(disp >= 200) %>% {print(dim(.))}

尽管需要一个功能,@ hrbrmstr解决方案确实更容易"清理".

r magrittr tidyverse

3
推荐指数
2
解决办法
385
查看次数

标签 统计

magrittr ×1

r ×1

tidyverse ×1