split() on data.frames

  • Use Map() and split() to on data.frames to perform grouped aggregations.
l <- Map(
    function(x) {
        c(Min=min(x), Median=median(x), Mean=mean(x), Max=max(x))
    },
    split(iris[["Sepal.Length"]], iris[["Species"]])
)
print(l[1:3])
## $setosa
##    Min Median   Mean    Max 
##  4.300  5.000  5.006  5.800 
## 
## $versicolor
##    Min Median   Mean    Max 
##  4.900  5.900  5.936  7.000 
## 
## $virginica
##    Min Median   Mean    Max 
##  4.900  6.500  6.588  7.900