Gruppieren Sie nach mehreren Spalten in dplyr unter Verwendung der Zeichenfolgenvektoreingabe

Ich versuche, mein Verständnis von Plyr in Dplyr zu übertragen, aber ich kann nicht herausfinden, wie man nach mehreren Spalten gruppiert.

# 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

Was fehlt mir, um das Plyr-Beispiel in eine dplyr-esque-Syntax zu übersetzen?

Bearbeiten Sie 2017: Dplyr wurde aktualisiert, daher ist eine einfachere Lösung verfügbar. Die aktuell ausgewählte Antwort anzeigen.

Antworten auf die Frage(9)

Ihre Antwort auf die Frage