Los
ejemplos siguientes muestran como obtener estadísticos por grupo en R usando la
función vectorizada tapply
y la función aggregate.
Se puede verificar se pueden usar para obtener un promedio por grupos o por
contingencia de grupos.
> 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
> attach(iris)
> tapply(Sepal.Length, Species, mean)
setosa versicolor virginica
5.006 5.936
6.588
> aggregate(Sepal.Length~Species, data=iris, mean)
Species Sepal.Length
1 setosa 5.006
2 versicolor 5.936
3 virginica 6.588
> tapply(Sepal.Length, list(Species,Petal.Width>1), mean)
FALSE TRUE
setosa
5.006000 NA
versicolor 5.414286 6.02093
virginica NA 6.58800
> aggregate(Sepal.Length~Species+(Petal.Width>1), data=iris, mean)
Species Petal.Width > 1
Sepal.Length
1 setosa FALSE 5.006000
2 versicolor
FALSE 5.414286
3 versicolor
TRUE 6.020930
4
virginica TRUE 6.588000