如何在dplyr

时间:2018-05-11 14:12:12

标签: r shiny dplyr

我正在尝试使用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)
  )

感谢。 Wlademir。

2 个答案:

答案 0 :(得分:3)

Error in grouped_df_impl(data, unname(vars), drop) :

  columns <- c("Sepal.Length", "Species")

  iris %>% group_by(.dots = columns) %>% 
    summarise(
      `Sum.Sepal.Width` = sum(Sepal.Width)
    )

答案 1 :(得分:3)

另一种方法是使用rlang::syms

iris %>% 
  group_by(!!! rlang::syms(columns)) %>% 
  summarise(
    `Sum.Sepal.Width` = sum(Sepal.Width)
  )