dplyr でグループごとに複数カラムを追加したい
に対する1回答。
> library("dplyr") > library("tidyr") > probs <- seq(0, 1, by=0.25) > iris %>% group_by(Species) %>% + summarize(tmp=list(data.frame(prob=probs, quantile=quantile(Sepal.Length, probs)))) %>% + tidyr::unnest() %>% + tidyr::spread(prob, quantile) Source: local data frame [3 x 6] Species 0 0.25 0.5 0.75 1 (fctr) (dbl) (dbl) (dbl) (dbl) (dbl) 1 setosa 4.3 4.800 5.0 5.2 5.8 2 versicolor 4.9 5.600 5.9 6.3 7.0 3 virginica 4.9 6.225 6.5 6.9 7.9
どうだろうか。