我想写一个使用dplyr的函数,我提供变量名作为字符串.不幸的是,dplyr-s使用NSE使它变得相当复杂.从使用dplyr编程我得到以下示例
my_summarise <- function(df, var) {
var <- enquo(var)
df %>%
group_by(!!var) %>%
summarise(a = mean(a))
}
my_summarise(df, g1)
Run Code Online (Sandbox Code Playgroud)
但是,我想编写功能而不是g1我能提供的功能,"g1"而且我无法解决如何做到这一点.
是否有一个命令可以添加到 tidyverse 管道中,该命令不会中断流程,但会产生一些副作用,例如打印出来的东西。我想到的用例是这样的。如果是管道
data %>%
mutate(new_var = <some time consuming operation>) %>%
mutate(new_var2 = <some other time consuming operation>) %>%
...
Run Code Online (Sandbox Code Playgroud)
我想向管道添加一些不会修改最终结果的命令,但会打印出一些进度或事情的状态。也许是这样的:
data %>%
mutate(new_var = <some time consuming operation>) %>%
command_x(print("first operation done")) %>%
mutate(new_var2 = <some other time consuming operation>) %>%
...
Run Code Online (Sandbox Code Playgroud)
command_x已经存在这样的吗?