[dplyr] group_byを行う時、集約に使うキーを変数で指定したい。
やりたい事
ここにiris
がある。
> head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa
これをPetal.Width
でgroup_by
してn
をカウントしたい時はこうする。
> iris %>% group_by(Petal.Width) %>% summarise(n = n()) Source: local data frame [22 x 2] Petal.Width n 1 0.1 5 2 0.2 29 3 0.3 7 ...
今回は、Petal.Width
を使ってgroup_by
したが、これを動的に指定したい。
結論
group_by_
を使う + キーは変数に入れておく。
> group_by_key <- "Petal.Width" > iris %>% group_by_(group_by_key) %>% summarise(n = n()) Source: local data frame [22 x 2] Petal.Width n 1 0.1 5 2 0.2 29 3 0.3 7
このコードで言うところのgroup_by_key
に任意のカラム名を入れる事でgroup_by
に使うキーを動的に指定できる。