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
plyr 예제를 dplyr-esque 구문으로 변환하기 위해 무엇을 놓치고 있습니까?
편집 2017 : Dplyr이 업데이트되었으므로 더 간단한 솔루션을 사용할 수 있습니다. 현재 선택된 답변을 참조하십시오.
.dots
합니다. 다음은 @hadley의 답변에서 수정 된 솔루션입니다.df %>% group_by_(.dots=list(quote(asihckhdoydk), quote(a30mvxigxkgh))) %>% summarise(n = n())
group_by_
지금 설명 할 수 있습니다vignette("nse")