Actividad de repaso - Análisis de decisiones bajo condiciones de incertidumbre

1. Entorno de trabajo

Primero, se cargaron las librerías necesarias para realizar la limpieza y análisis.

library(readxl)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(haven)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
library(knitr)
library(stargazer)
## 
## Please cite as:
##  Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
##  R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
library(tidyr)
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.2.3
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows

2. Carga de datos y creación de

En esta sección se cargarán los datos EPHM del 2012.

Primero, se cargarón los datos de los 15 archivos obtenidos de la encuesta, almacenandolos en la variable “archivos_sav”. Después de esto, se crearon df individuales con los nombres del archivo correspondiente.

#Obtiene la lista de archivos .sav que están en la carpeta
archivos_sav <- list.files(pattern = "\\.sav$", full.names = TRUE) 

#Lee todos los archivos y los almacena en la lista lista_datos
lista_datos <- lapply(archivos_sav, read_sav) 

#Asigna nombres a cada dataset en la lista según el nombre del archivo y almacena los nombres de los arhcivos en la lista a
names(lista_datos) <- tools::file_path_sans_ext(basename(archivos_sav))
a <- names(lista_datos)

# Crea un archivo data frame por cada elemento en 'lista_datos', nombrandolo con el nombre del archivo .sav original
for (i in seq_along(lista_datos)) {
  assign(a[i], lista_datos[[i]])
}

Seguido de esto, se creo la función “get_Etiqueta”, con la cual se obtiene un df con todas las etiquetas que contienen la palabra “gasto”, así como la cantidad de registros en la que se encuentra la información.

get_Etiqueta <- function(df){

  # Obtener las etiquetas de las columnas
column_labels <- sapply(df, function(col) attr(col, "label"))

# Obtener las etiquetas de las columnas (Value) de la lista column_labels
labels_vector <- sapply(column_labels, function(x) {
  if (is.null(x)) {
    return(NA)  # Si no hay etiqueta, asigna NA
  } else {
    return(x)   # Devuelve la etiqueta
  }
})

# Convertir a tabla con nombres de columnas, etiquetas y conteo de datos no nulos
summary_table <- df %>%
  summarise(across(everything(), ~ sum(!is.na(.)))) %>%
  pivot_longer(cols = everything(), names_to = "Variable", values_to = "Non_Null_Count") %>%
  mutate(Description = labels_vector) %>%
  filter(grepl("gasto", Description, ignore.case = TRUE))%>%
  select(Variable, Description, Non_Null_Count)

return(summary_table)
}

Utilizando la función anteriorimente creada, se probó para los 15 archivos para identificar al que tuviera la mayor cantidad de etiquetas que contienen “gasto”. Se identificó que el df “SEC03” era el que más etiquetas relacionadas con gasto tenía. El resúmen con los nombres de las variables, sus etiquetas y la cantidad de registros en los que se encuentra información se muestra a continuación.

etiquetas_final <- get_Etiqueta(SEC03) 

# Formatear la tabla
kable(etiquetas_final)
Variable Description Non_Null_Count
R33101B Gasto de agua en dólares 14754
R33102B Gasto de electricidad en dólares 19018
R33103B Gasto de kerosen en dólares 661
R33104B Gasto de gas propano en dólares 10202
R33105B Gasto de candela en dólares 786
R33106B Gasto de leña en dólares 546
R33107B Gasto de carga de batería en dólares 87
R33109B Gasto de telefono fijo en dólares 3696
R33110B Gasto de celular en dólares 18142
R33111B Gasto de cable/cable del vecino en dólares 4805
R33112B Gasto de internet en dólares 777
R33113B Gasto de cibercafe en dólares 2054
R33114B Gasto de impuestos municipales en dólares 2131
R33115B Gasto de pago de vigilancia en dólares 406
R33116B Gasto de recolección de basura en dólares 482
R33117A Otros tipo de gasto 21710
R33117B Otros Ultimo gasto ? 403
R33101B1 Gasto de agua envasada en dólares 1946
R33101B2 Gasto de agua envasada en dólares 1569
df_final <- SEC03 %>% 
  select(R33101B, R33102B, R33103B, R33104B, R33105B, R33106B, R33107B, R33108B, R33109B, R33110B,R33111B, R33112B, R33113B, R33114B, R33115B, R33116B, R33117A, R33117B, R33101A, R33101B)