0

I want to set the column for grouping a data frame into a variable and then group and summarise the data frame based on it, i.e.

require(dplyr)
var <- colnames(mtcars)[10]
summaries <- mtcars %>% dplyr::group_by(var) %>% dplyr::summarise_each(funs(mean))

such that I can simply change var and use the second line without changing anything. Unfortunately my solution does not work as group_by asks the column name and not a variable.

Stefano
  • 361
  • 1
  • 4
  • 21

1 Answers1

2

Use group_by_, which takes arguments as character strings:

require(dplyr)
var <- colnames(mtcars)[10]
summaries <- mtcars %>% dplyr::group_by_(var) %>% dplyr::summarise_each(funs(mean))

(Maybe resources on standard vs non-standard evaluation would be of interest: http://adv-r.had.co.nz/Computing-on-the-language.html)

jakub
  • 4,774
  • 4
  • 29
  • 46