Группировать по нескольким столбцам в dplyr, используя строковый вектор

я пытаюсь перенести мое понимание plyr в dplyr, но я могуt понять, как группировать по нескольким столбцам.

# make data with weird column names that can't be hard coded
data = data.frame(
  asihckhdoydkhxiydfgfTgdsx = sample(LETTERS[1:3], 100, replace=TRUE),
  a30mvxigxkghc5cdsvxvyv0ja = sample(LETTERS[1:3], 100, replace=TRUE),
  value = rnorm(100)
)

# get the columns we want to average within
columns = names(data)[-3]

# plyr - works
ddply(data, columns, summarize, value=mean(value))

# dplyr - raises error
data %.%
  group_by(columns) %.%
  summarise(Value = mean(value))
#> Error in eval(expr, envir, enclos) : index out of bounds

Чего мне не хватает, чтобы перевести пример plyr в синтаксис dplyr-esque?

Редактировать 2017: Dplyr был обновлен, поэтому доступно более простое решение. Смотрите текущий выбранный ответ.

Ответы на вопрос(9)

Ваш ответ на вопрос