El gráfico presentado es un ejercicio de análisis de datos con R. Se hizo uso de la Encuesta Nacional de Ocupación y Empleo.
Los datos eseleccionados son datos de la población ocupada en el cuarto trimestr de 2023. Se seleccionó la variable categorica de estado civil. Por tanto, la gráfica se denomina como Estado civil de la población ocupada 2023
paquetes=c("survey","ggsurvey","forcats","haven","readxl","readxl","fastDummies","readr", "dplyr", "foreign", "tidyr", "ggplot2", "writexl","openxlsx","gridExtra")
for (i in paquetes) {if (!require(i, character.only = TRUE)) {install.packages(i);library(i, character.only = TRUE)} else {library(i, character.only = TRUE)}}
## Cargando paquete requerido: survey
## Cargando paquete requerido: grid
## Cargando paquete requerido: Matrix
## Cargando paquete requerido: survival
##
## Adjuntando el paquete: 'survey'
## The following object is masked from 'package:graphics':
##
## dotchart
## Cargando paquete requerido: ggsurvey
## Cargando paquete requerido: ggplot2
## Cargando paquete requerido: hexbin
## Cargando paquete requerido: dplyr
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
## Cargando paquete requerido: forcats
## Cargando paquete requerido: haven
## Cargando paquete requerido: readxl
## Cargando paquete requerido: fastDummies
## Thank you for using fastDummies!
## To acknowledge our work, please cite the package:
## Kaplan, J. & Schlegel, B. (2023). fastDummies: Fast Creation of Dummy (Binary) Columns and Rows from Categorical Variables. Version 1.7.1. URL: https://github.com/jacobkap/fastDummies, https://jacobkap.github.io/fastDummies/.
## Cargando paquete requerido: readr
## Cargando paquete requerido: foreign
## Cargando paquete requerido: tidyr
##
## Adjuntando el paquete: 'tidyr'
## The following objects are masked from 'package:Matrix':
##
## expand, pack, unpack
## Cargando paquete requerido: writexl
## Cargando paquete requerido: openxlsx
## Cargando paquete requerido: gridExtra
##
## Adjuntando el paquete: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
#2. Directorio de trabajo
enoe=read_dta("ENOE_SDEMT423.dta")
# Variable filtro
enoe <- enoe %>%
mutate(f = r_def == 0 & (c_res == 1 | c_res == 3) & eda >= 15 & eda <= 98)
enoe=enoe %>% filter(f==1)
# 3.1 Subconjuntos de datos
# CLASE2=Condicion de ocupacion
# Codigos: 1=Ocupado, 2=Desocupado, 3=Disponible, 4=No disponible
# Convertir la variable a dato numerico
enoe$e_con=as.numeric(enoe$e_con)
# Filtrar la base, necesitamos a los ocupados CLASE2=1
ocupados=enoe%>%filter(clase2==1)
# 3.2 Etiquetado de variables
# Codigos: 1=Hombre, 2=Mujer
ocupados <- ocupados %>%
mutate(sex = fct_recode(factor(sex),
Hombre = "1",
Mujer = "2"))
# pos_ocu=Posicion en la ocupacion
# Codigos: 1=Suborninado, 2=Independiente, 3=Disponible, 0=No aplica
ocupados <- ocupados %>%
mutate(pos_ocu = fct_recode(factor(pos_ocu),
"No Aplica" = "0",
"Suborninado" = "1",
"Empleadores" = "2",
"Cuenta propia" = "3",
"Sin pago" = "4"))
#---------------------------------------
# NOTA:
# Estamos recodificando en la misma
# variable, entonces se pierden los
# valores originales.
#---------------------------------------
head (enoe)
## # A tibble: 6 × 115
## r_def loc mun est est_d_tri est_d_men ageb t_loc_tri t_loc_men
## <dbl+lbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl+lbl> <dbl+lbl>
## 1 0 [Entrevista… NA 10 30 124 NA 0 1 [Local… NA
## 2 0 [Entrevista… NA 13 30 124 NA 0 1 [Local… NA
## 3 0 [Entrevista… NA 5 20 123 NA 0 1 [Local… NA
## 4 0 [Entrevista… NA 7 30 124 NA 0 1 [Local… NA
## 5 0 [Entrevista… NA 5 20 123 115 0 1 [Local… 1 [Loca…
## 6 0 [Entrevista… NA 14 30 124 116 0 1 [Local… 1 [Loca…
## # ℹ 106 more variables: cd_a <dbl+lbl>, ent <dbl+lbl>, con <dbl>, upm <dbl>,
## # d_sem <dbl+lbl>, n_pro_viv <dbl>, v_sel <dbl+lbl>, n_hog <dbl+lbl>,
## # h_mud <dbl+lbl>, n_ent <dbl+lbl>, per <dbl+lbl>, n_ren <dbl+lbl>,
## # c_res <dbl+lbl>, par_c <dbl>, sex <dbl+lbl>, eda <dbl>, nac_dia <dbl+lbl>,
## # nac_mes <dbl+lbl>, nac_anio <dbl>, l_nac_c <dbl+lbl>, cs_p12 <dbl+lbl>,
## # cs_p13_1 <dbl+lbl>, cs_p13_2 <dbl+lbl>, cs_p14_c <chr>, cs_p15 <dbl+lbl>,
## # cs_p16 <dbl+lbl>, cs_p17 <dbl+lbl>, n_hij <dbl+lbl>, e_con <dbl>, …
#4. Graficas (ggplot)
#4.1 Con 1 variable discreta
class(ocupados$sex)
## [1] "factor"
# Gráfico = Datos + Estética + Geometría.
ocupados =ocupados%>%filter(as.numeric(e_con)>0 & as.numeric(e_con)<9)
ocupados <- ocupados %>%
mutate(e_con = fct_recode(factor(e_con),
Libre = "1",
Separado = "2",
Divorciado = "3",
Viudo = "4",
Casado = "5",
Soltero = "6"))
ggplot(ocupados, aes(x = e_con, y = ..prop.. * 100, group = 1)) +
geom_bar(aes(fill = e_con), position = "dodge", stat = "count") + # Crea barras con porcentajes
geom_text(aes(label = scales::percent(..prop..)), stat = 'count', # Ajusta el número mostrado arriba de las barras
vjust = -0.5, position = position_dodge(0.5), size = 3.5) +
labs(x = "Estado Civil", y = "Porcentaje", title = "Estado civil de los encuestados",
caption = "Nota: población de 15 años y más por estado civil\nFuente: ENOE cuarto trimestre 2023") + # Añade la fuente y nota como pie de página
theme_minimal(base_size = 14) +
theme(plot.title = element_text(hjust = 0.5), # Centrar el título horizontalmente
plot.caption = element_text(hjust = 0, size = 9)) + # Ajustes de estilo para la nota de fuente y la nota explicativa
scale_y_continuous(labels = scales::percent_format(scale = 1))
Note that the echo = FALSE parameter was added to the
code chunk to prevent printing of the R code that generated the
plot.