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

どうだろうか。