18 Ocak 2014, CUMARTESÄ°
Dplyr birden çok sütun, sicim vektör girişini kullanarak grup
Dplyr içine plyr benim anlayış aktarmak için çalışıyorum, ama birden çok sütuna göre grup nasıl olduğunu çözemedim.
# 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
Benim eksik dplyr-vari bir sözdizimi içine plyr örneği çevirmek için ne yapacağım?
CEVAP
20 Ocak 2014, PAZARTESÄ°
Dplyr bu desteği şu anda çok zayıf, sonunda sözdizimi gibi bir şey olacak sanırım
df %.% group_by(.groups = c("asdfgfTgdsx", "asdfk30v0ja"))
Ama muhtemelen bir süre daha orada tüm sonuçları düşünmeye ihtiyacım var, çünkü bu olmayacak.
Bu arada, sembollerin bir listesini alır regroup()
, kullanabilirsiniz
library(dplyr)
df <- data.frame(
asihckhdoydk = sample(LETTERS[1:3], 100, replace=TRUE),
a30mvxigxkgh = sample(LETTERS[1:3], 100, replace=TRUE),
value = rnorm(100)
)
df %.%
regroup(list(quote(asihckhdoydk), quote(a30mvxigxkgh))) %.%
summarise(n = n())
Eğer bir karakter sütun adları vektör varsa, lapply()
as.symbol()
doğru yapı çevirebiliriz:
vars <- setdiff(names(df), "value")
vars2 <- lapply(vars, as.symbol)
df %.% regroup(vars2) %.% summarise(n = n())
Bunu PaylaÅŸ:
Birden çok sütun kullanarak grup...
ayar, birden çok sütun kullanarak günc...
Birden Çok Sütuna Göre Grup...
Nasıl MySQL birden çok sütun benzersiz...
Merkezi sütun kullanarak Bootstrap 3 T...