我有一些代码将分组变量指定为字符串。
group_var <- "cyl"
Run Code Online (Sandbox Code Playgroud)
我在 dplyr 管道中使用这个分组变量的当前代码是:
mtcars %>%
group_by_(group_var) %>%
summarize(mean_mpg = mean(mpg))
Run Code Online (Sandbox Code Playgroud)
我对如何替换已弃用的group_by_函数的最佳猜测group_by是:
mtcars %>%
group_by(!!as.name(group_var)) %>%
summarize(mean_mpg = mean(mpg))
Run Code Online (Sandbox Code Playgroud)
这有效,但在使用 dplyr 小插图的编程中没有明确提及。
是否使用!!as.name()首选方式替换group_by_()为group_by()?
这是在函数内吗?否则我认为这!!as.name()部分是不必要的,group_by_at(group_var)为了简单起见,我会坚持@aosmith的建议。否则,我会这样设置:
examplr <- function(data, group_var){
group_var <- as.name(group_var)
data %>%
group_by(!!group_var) %>%
summarize(mean_mpg = mean(mpg))
}
examplr(data = mtcars,
group_var = "cyl")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2138 次 |
| 最近记录: |