25 ene 2020

Promedio por grupos en R


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


Creando variables por grupos en dplyr (group_by + mutate)

  Simulemos una base de hogares, donde se identifica el hogar, el sexo (1 mujer) y provincia y edad para cada miembro.   # Definir la lista ...