首页 > 解决方案 > 如何在 dplyr 中调用几个变量到 group_by

问题描述

我正在尝试使用 group_by 并用几个列进行汇总,这些列将在闪亮的应用程序中进行交互。因此,如果我在 group_by 函数中指定列名,它可以工作,但是如果我为列名创建一个向量,那么它就不再工作了。以下是 Iris 数据集的示例:

# Working
iris %>% group_by(Sepal.Length, Species) %>% 
  summarise(
    `Sum.Sepal.Width` = sum(Sepal.Width)
  )

# Not working
columns <- c("Sepal.Length", "Species")
iris %>% group_by(columns) %>% 
  summarise(
    `Sum.Sepal.Width` = sum(Sepal.Width)
  )

谢谢。弗拉德米尔。

标签: rshinydplyr

解决方案


正如这个问题中提到的,它应该通过使用group_by_at()

columns <- c("Sepal.Length", "Species")
iris %>% group_by_at(columns) %>% 
  summarise(
    "Sum.Sepal.Width" = sum(Sepal.Width)
)

推荐阅读