Las tablas que se generaron en el video fueron con el comando que está en el paquete base, ahora usaremos un paquete específico para realizar resúmenes de variables, que se llama summarytools. En primer lugar debe ser instalado por medio de
install.packages(“summarytools”)
O bien con el comando Install en la solapa Packages del panel inferior derecho, y luego hay que cargarlo en la sesión por medio de
library(summarytools)
O bien tildando la casilla en la lista de paquetes instalados, en la
solapa ¨Packages del panel inferior derecho.
El comando freq de este paquete es para tablas de distribución
de frecuencias, vamos a aplicarlo a la variable sexo (CH04).
freq(eph.4.22$CH04)
## Frequencies
## eph.4.22$CH04
## Type: Integer
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------- ------- --------- -------------- --------- --------------
## 1 23123 47.63 47.63 47.63 47.63
## 2 25422 52.37 100.00 52.37 100.00
## <NA> 0 0.00 100.00
## Total 48545 100.00 100.00 100.00 100.00
Como se observa, el resultado tiene más información que la que proviene del comando table del paquete Base. Si consultamos a la ayuda con la instrucción ?summarytools, la respuesta va a aparecer en la solapa Help del panel inferior derecho, y allí encontraremos que el reporte de casos perdidos puede desactivarse estableciendo el argumento lógico report.nas como falso (report.nas=F).
freq(eph.4.22$CH04, report.nas = F)
## Frequencies
## eph.4.22$CH04
## Type: Integer
##
## Freq % % Cum.
## ----------- ------- -------- --------
## 1 23123 47.63 47.63
## 2 25422 52.37 100.00
## Total 48545 100.00 100.00
De mismo modo, las frecuencias acumuladas pueden quitarse de la salida con el argumento cumul=F
freq(eph.4.22$CH04, report.nas = F, cumul = F)
## Frequencies
## eph.4.22$CH04
## Type: Integer
##
## Freq %
## ----------- ------- --------
## 1 23123 47.63
## 2 25422 52.37
## Total 48545 100.00
Veamos la aplicación a la variable condición de actividad
freq(eph.4.22$ESTADO)
## Frequencies
## eph.4.22$ESTADO
## Type: Integer
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------- ------- --------- -------------- --------- --------------
## 0 81 0.17 0.17 0.17 0.17
## 1 21202 43.67 43.84 43.67 43.84
## 2 1203 2.48 46.32 2.48 46.32
## 3 19871 40.93 87.25 40.93 87.25
## 4 6188 12.75 100.00 12.75 100.00
## <NA> 0 0.00 100.00
## Total 48545 100.00 100.00 100.00 100.00
Quitamos el reporte de los casos perdidos que, aunque no haya ninguno, aparece ocupando una línea en la tabla
freq(eph.4.22$ESTADO, report.nas = F)
## Frequencies
## eph.4.22$ESTADO
## Type: Integer
##
## Freq % % Cum.
## ----------- ------- -------- --------
## 0 81 0.17 0.17
## 1 21202 43.67 43.84
## 2 1203 2.48 46.32
## 3 19871 40.93 87.25
## 4 6188 12.75 100.00
## Total 48545 100.00 100.00
Dado que las categorías no tienen orden, no tienen sentido las frecuencias acumuladas, pedimos que no sean informadas
freq(eph.4.22$ESTADO, report.nas = F, cumul = F)
## Frequencies
## eph.4.22$ESTADO
## Type: Integer
##
## Freq %
## ----------- ------- --------
## 0 81 0.17
## 1 21202 43.67
## 2 1203 2.48
## 3 19871 40.93
## 4 6188 12.75
## Total 48545 100.00
Repetimos la eliminación de las categorías no válidas
eph.4.22$ESTADO[eph.4.22$ESTADO==0 | eph.4.22$ESTADO==4]<-NA
Observe la expresión dentro del corchete, la barra vertical | es el o, por lo que se está refierinedo a que si se cumple cualquiera de las condiciones (valor cero o cuatro), se declara NA
Luego la indicamos como factor y definimos sus niveles
eph.4.22$ESTADO<-as.factor(eph.4.22$ESTADO)
levels(eph.4.22$ESTADO) = c("ocupade", "desocupade", "inactive")
Y la tabla queda:
freq(eph.4.22$ESTADO, report.nas = F, cumul = F)
## Frequencies
## eph.4.22$ESTADO
## Type: Factor
##
## Freq %
## ---------------- ------- --------
## ocupade 21202 50.15
## desocupade 1203 2.85
## inactive 19871 47.00
## Total 42276 100.00
Cuando las categorías de la variable tienen orden, entonces las frecuencias acumuladas pueden interpretarse. Veamos el caso del nivel de educación, el cual requiere un ajuste previo de las categorías, porque el valor 7 fue asignado a quienes no tienen instrucción y debería ser 0, para que quede antes del 1, además el 9 corresponde a casos perdidos. Realizamos estas transformaciones.
eph.4.22$NIVEL_ED[eph.4.22$NIVEL_ED==7]<-0
eph.4.22$NIVEL_ED[eph.4.22$NIVEL_ED==9]<-NA
Además, a los fines de quitar del análisis a quienes están cursando estudios, retendremos, en una nueva base, solo a quienes respondieron que no lo están haciendo. Es decir solo a quienes en CH10, que es “¿Asiste o asistió a algún establecimiento educativo (colegio, escuela, universidad)?” hayan respondido “No asiste, pero asistió” o bien “Nunca asistió”, que corresponde a las categorías 2 y 3.
no.cursantes<-eph.4.22[eph.4.22$CH10==2 | eph.4.22$CH10==3,]
Debido a que en este caso, estamos seleccionando parte de un data frame, los corchetes tienen dos posiciones separadas por una coma. La primera posición corresponde a las filas y la segunda a las columnas. Hemos puesto nuestra condición (que CH10 valga 2 o (|) 3) en la primera posición, eso significa que retemos las filas que cumplan con eso. Por su lado, a las columnas no las tocamos, por eso luego de la coma no se indica condición alguna.
En el Global Environment, se ve que la nueva base tiene 33123 observaciones y podemos verificar que se cumpla la condición solicitada, por medio de una tabla de CH10
table(no.cursantes$CH10)
##
## 2 3
## 31889 1234
Solo hay en esta nueva base casos que, o bien asistieron pero ya no
lo hacen o bien nunca asistieron a establecimientos educativos.
Ahora podemos pedir la tabla, a la que quitamos el reporte de los casos
perdidos
freq((no.cursantes$NIVEL_ED), report.nas = F)
## Frequencies
##
## Freq % % Cum.
## ----------- ------- -------- --------
## 0 1269 3.83 3.83
## 1 1938 5.85 9.68
## 2 5621 16.97 26.65
## 3 5394 16.28 42.94
## 4 9993 30.17 73.11
## 5 2414 7.29 80.39
## 6 6494 19.61 100.00
## Total 33123 100.00 100.00
La llevamos a factor y rotulamos las categorías, para leer mejor la tabla
no.cursantes$NIVEL_ED<-as.factor(no.cursantes$NIVEL_ED)
levels(no.cursantes$NIVEL_ED)<-c("Sin instrucción", "Primaria Incompleta",
"Primaria Completa","Secundaria Incompleta",
"Secundaria Completa","Superior Universitaria Incompleta",
"Superior Universitaria Completa")
freq(no.cursantes$NIVEL_ED, report.nas = F)
## Frequencies
## no.cursantes$NIVEL_ED
## Type: Factor
##
## Freq % % Cum.
## --------------------------------------- ------- -------- --------
## Sin instrucción 1269 3.83 3.83
## Primaria Incompleta 1938 5.85 9.68
## Primaria Completa 5621 16.97 26.65
## Secundaria Incompleta 5394 16.28 42.94
## Secundaria Completa 9993 30.17 73.11
## Superior Universitaria Incompleta 2414 7.29 80.39
## Superior Universitaria Completa 6494 19.61 100.00
## Total 33123 100.00 100.00
Y leemos aquí que 5394 personas tienen secundaria incompleta, que el 16.28% tiene ese nivel de educación y que el 42.94% tiene secundaria incompleta o menos, que es equivalente a decir que no llegó a completar el secundario, sea porque lo inició y no lo terminó (16.28%) o solo terminó la primaria (16.97%), o no terminó la primaria (5.85%) o nunca fue a la escuela (3.83%)