是否可以在一个函数中对多个变量使用 group_by?
Is it possible to use group_by in a function for more than one variable?
我创建了一个函数来聚合数据集中的数值,我首先使用 group_by() 函数对数据进行分组。下面是我编写的代码的示例。有没有一种方法可以 group_by() 多个变量而不必为函数创建另一个输入?
agg <- function(data, group){ aggdata <- data %>% group_by({{group}}) %>% select_if(function(col) !is.numeric(col) & !is.integer(col)) %>% summarise_if(is.numeric, sum, na.rm = TRUE) return(aggdata)
您的代码(至少)有一个错位的花括号,如果没有可重现的示例和预期的结果,很难看出您要完成什么。
可以将变量名向量传递给 group_by()
。例如,以下生成与 mtcars %>% group_by(cyl, gear)
相同的结果:
my_groups <- c("cyl", "gear")
mtcars %>% group_by(!!!syms(my_groups))
也许您可以在函数定义中使用此语法。
我创建了一个函数来聚合数据集中的数值,我首先使用 group_by() 函数对数据进行分组。下面是我编写的代码的示例。有没有一种方法可以 group_by() 多个变量而不必为函数创建另一个输入?
agg <- function(data, group){ aggdata <- data %>% group_by({{group}}) %>% select_if(function(col) !is.numeric(col) & !is.integer(col)) %>% summarise_if(is.numeric, sum, na.rm = TRUE) return(aggdata)
您的代码(至少)有一个错位的花括号,如果没有可重现的示例和预期的结果,很难看出您要完成什么。
可以将变量名向量传递给 group_by()
。例如,以下生成与 mtcars %>% group_by(cyl, gear)
相同的结果:
my_groups <- c("cyl", "gear")
mtcars %>% group_by(!!!syms(my_groups))
也许您可以在函数定义中使用此语法。