将列名作为字符串传递给group_by并进行汇总

问题描述 投票:6回答:1

使用dplyr从0.7版开始,不建议使用以下划线结尾的方法,例如summary_ group_by_,因为我们应该使用quosures。

请参阅:https://cran.r-project.org/web/packages/dplyr/vignettes/programming.html

我正在尝试使用quo和!!实现以下示例。

工作示例:

df <- data.frame(x = c("a","a","a","b","b","b"), y=c(1,1,2,2,3,3), z = 1:6)

lFG <- df %>% 
   group_by( x,y) 
lFG %>% summarize( min(z))

但是,在这种情况下,我需要实现按字符串分组和汇总的列指定为字符串。

cols2group <- c("x","y")
col2summarize <- "z"

如何获得与上述相同的示例?

r dplyr summarize rlang quosure
1个回答
7
投票

为此,您现在可以使用动词的_at版本

df %>%  
  group_by_at(cols2group) %>% 
  summarize_at(.vars = col2summarize, .funs = min)
© www.soinside.com 2019 - 2024. All rights reserved.