library(plyr) dlply(mtcars, .(cyl), function(x) summary(x$mpg))
You can also do this in data.frame, which I usually prefer over complex lists ...
ddply(mtcars, .(cyl), function(x) summary(x$mpg)) # cyl Min. 1st Qu. Median Mean 3rd Qu. Max. # 1 4 21.4 22.80 26.0 26.66 30.40 33.9 # 2 6 17.8 18.65 19.7 19.74 21.00 21.4 # 3 8 10.4 14.40 15.2 15.10 16.25 19.2
source share