是否有一个命令可以添加到 tidyverse 管道中,该命令不会中断流程,但会产生一些副作用,比如打印出来的东西。我想到的用例是这样的。如果是管道
data %>%
mutate(new_var = <some time consuming operation>) %>%
mutate(new_var2 = <some other time consuming operation>) %>%
...
我想向管道添加一些不会修改最终结果的命令,但会打印出一些进度或事情的状态。也许是这样的:
data %>%
mutate(new_var = <some time consuming operation>) %>%
command_x(print("first operation done")) %>%
mutate(new_var2 = <some other time consuming operation>) %>%
...
是否已经存在这样的
command_x
? 最佳答案
您可以轻松编写自己的函数
pass_through <- function(data, fun) {fun(data); data}
并使用它
mtcars %>% pass_through(. %>% ncol %>% print) %>% nrow
这里我们使用
. %>%
语法来创建匿名函数。您也可以更明确地编写自己的mtcars %>% pass_through(function(x) print(ncol(x))) %>% nrow
关于r - 打印中间结果而不会破坏tidyverse中的流水线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46123285/