3.6 Funciones mutate, summarise y group_by en encuestas de hogares
Las funciones mutate
, summarise
y group_by
están cargadas en el paquete tidyverse
y son muy importantes al momento de realizar análisis en encuestas de hogares. En primer lugar, la función mutate
permite computar transformaciones de variables en una base de datos. Usualmente, en las encuestas de hogares es necesario crear nuevas variables, por ejemplo, si el hogar está en estado de pobreza extrema o no la cual se calcula a partir de los ingresos del hogar, la función mutate
proporciona una interface clara para realizar este tipo de operaciones. A modo de ejemplo, utilizaremos la base de ejemplo para crear una nueva variable llamada ingreso2 la cual es el doble de los ingresos por persona dentro de un hogar. Los códigos computacionales se muestran a continuación:
<- datablue %>%
datablue2 mutate(ingreso2 = 2 * ingcorte)
%>% head() datablue2
## id_pers edad sexo ingcorte ingreso2
## 1 1 23 Hombre 800.0 1600.0
## 2 1 23 Mujer 1150.0 2300.0
## 3 1 35 Mujer 904.4 1808.8
## 4 2 34 Hombre 904.4 1808.8
## 5 3 11 Mujer 904.4 1808.8
## 6 4 7 Mujer 904.4 1808.8
No solo se puede crear una nueva variable, si es necesario, se pueden crear más de una variable en la base de datos. Cabe recalcar que la función mutate
reconoce sistemáticamente las variables que van siendo creadas de manera ordenada. A continuación, se presenta cómo crear más de una nueva variable en la base de datos:
<- datablue %>%
datacat mutate(ingreso2 = 2 * ingcorte,
ingreso4 = 2 * ingreso2)
%>% head() datacat
## id_pers edad sexo ingcorte ingreso2 ingreso4
## 1 1 23 Hombre 800.0 1600.0 3200.0
## 2 1 23 Mujer 1150.0 2300.0 4600.0
## 3 1 35 Mujer 904.4 1808.8 3617.6
## 4 2 34 Hombre 904.4 1808.8 3617.6
## 5 3 11 Mujer 904.4 1808.8 3617.6
## 6 4 7 Mujer 904.4 1808.8 3617.6
Ahora bien, la función summarise
funciona de forma similar a la función mutate
, excepto que en lugar de añadir nuevas columnas crea un nuevo data frame. Como se mencionó anteriormente esta función sirve para resumir o “colapsar filas”. Toma un grupo de valores como input y devuelve un solo valor; por ejemplo, hallar la media de los ingresos, percentiles o medidas de dispersión.
Por otro lado, la función group_by
permite agrupar información de acuerdo con una(s) variable(s) de interés. El siguiente código permite generar el número de encuestas efectivas en cada uno de los estados de Brasil. El comando group_by
agrupa los datos por estados, el comando summarise
hace los cálculos requeridos y el comando arrange
ordena los resultados
%>%
data2 group_by(estados) %>%
summarise(n = n()) %>% arrange(desc(n)) %>% head()
## # A tibble: 6 × 2
## estados n
## <fct> <int>
## 1 SaoPaulo 40008
## 2 MinasGerais 32933
## 3 RioGrandeSur 26259
## 4 Bahia 26155
## 5 RioJaneiro 25858
## 6 Para 22489
Hay otro tipos de análisis que se quieren realizar en encuestas de hogares, por ejemplo, generar el número de encuestas efectivas discriminado por el sexo del respondiente. A continuación, se presenta el código computacional:
%>%
data2 group_by(sexo) %>%
summarise(n = n()) %>% arrange(desc(n))
## # A tibble: 2 × 2
## sexo n
## <fct> <int>
## 1 Mujer 183681
## 2 Hombre 173223
Si ahora se desea realizar la consulta del número de encuestas efectivas por área geográfica, se realiza de la siguiente manera:
%>%
data2 group_by(area_ee) %>%
summarise(n = n()) %>% arrange(desc(n))
## # A tibble: 2 × 2
## area_ee n
## <fct> <int>
## 1 Area urbana 304564
## 2 Area rural 52340
Otras consultas que se realizan de manera frecuente en encuestas de hogares es reporta el número efectivo de encuestas clasificado por parentezco (jefe de hogar, hijos, conyugues, etc)
%>%
data2 group_by(paren_ee) %>%
summarise(n = n()) %>% arrange(desc(n))
## # A tibble: 6 × 2
## paren_ee n
## <fct> <int>
## 1 Hijos 126206
## 2 Jefe 117939
## 3 Cónyuge 73725
## 4 Otros parientes 36508
## 5 Otros no parientes 2342
## 6 Servicio doméstico 184