gpt4 book ai didi

r - dplyr group_by 动态列

转载 作者:行者123 更新时间:2023-12-04 15:33:55 26 4
gpt4 key购买 nike

当向 group_by 提供变量时,关于 group_by 的最佳方式的共识是什么?考虑以下简单函数:

library(dplyr)

myFunction <- function(df,
col_name) {

out <-
group_by(col_name) %>%
summarize(mean = mean(mpg))

return(out)
}

myFunction(mtcars, col_name = c('cyl', 'am'))

调用此函数返回错误,指出该列不存在。我明白为什么,但不确定解决这个问题的最佳方法。如果只有一个分组变量,我可以使 if 工作:

group_by(!!as.name(col_name)) 

但是,如果 col_name 是一个向量 > 1,这将不起作用

有什么想法吗?

最佳答案

你可以试试:

myFunction <- function(df, col_name) {
out <- df %>%
group_by_at(vars(one_of(col_name))) %>%
summarize(mean = mean(mpg))

return(out)
}

myFunction(mtcars, col_name = c("cyl", "am"))

cyl am mean
<dbl> <dbl> <dbl>
1 4 0 22.9
2 4 1 28.1
3 6 0 19.1
4 6 1 20.6
5 8 0 15.0
6 8 1 15.4

关于r - dplyr group_by 动态列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60416944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com