dplyr-使用变量名对多个列进行分组

问题描述:

我正在与R Shiny合作进行一些探索性数据分析。我有两个复选框输入,它们仅包含用户选择的选项。第一个复选框输入仅包含分类变量。第二个复选框仅包含数字变量。接下来,在这两个选择上应用 groupby

I am working with R Shiny for some exploratory data analysis. I have two checkbox inputs that contain only the user-selected options. The first checkbox input contains only the categorical variables; the second checkbox contains only numeric variables. Next, I apply a groupby on these two selections:

var1 <- input$variable1      # Checkbox with categorical variables
var2 <- input$variable2      # Checkbox with numerical variables

v$data <- dataset %>%
  group_by_(var1) %>%
  summarize_(Sum = interp(~sum(x), x = as.name(var2))) %>%
  arrange(desc(Sum))

仅选择一个类别变量时,此 groupby 起作用完美。当多个分类变量被选择,这 GROUPBY 返回与列名的数组。如何将此列名称数组传递给 dplyr groupby

When only one categorical variable is selected, this groupby works perfectly. When multiple categorical variables are chosen, this groupby returns an array with column names. How do I pass this array of column names to dplyr's groupby?

如果有向量变量名,则应将它们传递给 .dots = group_by _ 的参数。例如:

If you have a vector of variable names, you should pass them to the .dots= parameter of group_by_. For example:

mtcars %>% 
   group_by_(.dots=c("mpg","hp","wt")) %>% 
   summarize(x=mean(gear))