मैं plyr की अपनी समझ को dplyr में स्थानांतरित करने की कोशिश कर रहा हूं, लेकिन मैं यह पता नहीं लगा सकता कि कैसे कई कॉलम द्वारा समूह बनाया जाए।
# 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
मैं एक dplyr-esque वाक्यविन्यास में plyr उदाहरण का अनुवाद करने के लिए क्या याद कर रहा हूँ?
संपादित करें 2017 : Dplyr अपडेट किया गया है, इसलिए एक सरल समाधान उपलब्ध है। वर्तमान में चयनित उत्तर देखें।
.dots
। यहाँ समाधान नीचे @hadley के उत्तर से अनुकूलित किया गया है:df %>% group_by_(.dots=list(quote(asihckhdoydk), quote(a30mvxigxkgh))) %>% summarise(n = n())
group_by_
अब आप समझाया जा सकता हैvignette("nse")