El objetivo de este documento es poder obtener un tabulado de la población ocupada por sexo según zona, con el lenguaje R, utilizando la base usuaria de la Encuesta de Ocupación e Ingresos de la Ciudad de Buenos Aires.
La base que se encuentra disponible en (https://www.estadisticaciudad.gob.ar/eyc/?p=129513)
Una opción es guardar la base con extensión CSV , para abrirla se usa read. csv
Se inspecciona los nombres de las columnas y qué tipo de objeto es, en este caso es un dataframe.
suppressPackageStartupMessages({
library(tidyverse)
library(dplyr)
library(sjmisc)
library(sjPlot)
library(ggplot2)
library(scales)})
Como interesa conocer los ocupados se utiliza un filtro. Luego se selecciona las variables que interesan para el tabulado.
etoi214ocupados = etoi214 %>%
filter(estado == 1) %>% # me quedo solo con los casos de ocupados
select( estado, sexo, zona, fexp)
El N total que figura al pie de la tabla es el total de ocupados para este trimestre.
Como se trata de una encuesta a hogares se utiliza el ponderador (fexp) a través de weights. De esta manera se obtienen los valores expandidos.
etoi214ocupados %>% frq(sexo,weights=fexp, out="v")
| val | label | frq | raw.prc | valid.prc | cum.prc | |
|---|---|---|---|---|---|---|
| 1 |
|
848549 | 52.92 | 52.92 | 52.92 | |
| 2 |
|
754802 | 47.08 | 47.08 | 100.00 | |
| NA | NA | 0 | 0.00 | NA | NA | |
| total N=1603351 · valid N=1603351 · x̄=1.47 · σ=0.50 | ||||||
etoi214ocupados %>% frq(zona,weights=fexp, out="v")
| val | label | frq | raw.prc | valid.prc | cum.prc | |
|---|---|---|---|---|---|---|
| 1 |
|
338698 | 21.12 | 21.12 | 21.12 | |
| 2 |
|
900583 | 56.17 | 56.17 | 77.29 | |
| 3 |
|
364070 | 22.71 | 22.71 | 100.00 | |
| NA | NA | 0 | 0.00 | NA | NA | |
| total N=1603351 · valid N=1603351 · x̄=2.02 · σ=0.66 | ||||||
Etiquetando las variables se mejora la lectura de los tabulados.
etoi214ocupados<- etoi214ocupados %>%
mutate(sexo = case_when (sexo==1 ~ "Varon",
sexo==2 ~ "Mujer"))
etoi214ocupados<- etoi214ocupados %>%
mutate(zona = case_when (zona==1 ~ "Norte",
zona==2 ~ "Centro",
zona==3 ~ "Sur"))
Para el total de los ocupados de la Ciudad, se cruzan las variables de sexo y zona.
etoi214ocupados %>% flat_table(sexo,zona,weights=fexp)
## zona Centro Norte Sur
## sexo
## Mujer 419220 168700 166882
## Varon 481363 169998 197188
Para graficar ordeno los datos de los tabulados (población ocupada).
tab_long = etoi214ocupados %>% dplyr::count(sexo, zona, wt=fexp)
print(tab_long)
## sexo zona n
## 1 Mujer Centro 419220
## 2 Mujer Norte 168700
## 3 Mujer Sur 166882
## 4 Varon Centro 481363
## 5 Varon Norte 169998
## 6 Varon Sur 197188
options(scipen = 999)
ggplot(tab_long, aes(x=zona, y=n, group=sexo, fill=sexo, label=n)) + geom_col() + ggtitle("Población ocupada segun sexo por zona") +
geom_text(position="stack", vjust=2.5, colour="white")
labs(x = "Zonas",
y = "Población") +
scale_fill_discrete(name = "Sexo")+theme_classic()
## NULL