Path: blob/main/Trabajo_grupal/WG6/Grupo7_r.R
2714 views
##########################################1#------------- Workgroup 6 ---------------2##########################################345#---------------- 1. Merge Dataset (Python y R) --------------------67# 1. Ingreso y gasto real per c�pita mensual del hogar para los a�os 2019 y 2020.89library(haven) # read datasets10library(tidyverse)11library(srvyr) # para declarar bases de datos como encuestas12131415#---- 2019 ----1617# Cargando bases de datos18enaho01 = data.frame( read_dta("C:/Users/Jose Pastor/Documents/datos_documents/enaho/2019/687-Modulo01/687-Modulo01/enaho01-2019-100.dta"))19enaho34 = data.frame( read_dta("C:/Users/Jose Pastor/Documents/datos_documents/enaho/2019/687-Modulo34/687-Modulo34/sumaria-2019.dta"))2021# Merge22merge_base_2019 <- merge(enaho01, enaho34,23by = c("conglome", "vivienda", "hogar"),24all.x = T, suffixes = c("",".y"))2526# eliminando columnas con terminacion .y27index <- grep(".y$", colnames(merge_base_2019))28merge_base_2019 <- merge_base_2019[, - index]29303132#---- 2020 ----3334# Cargando bases de datos35enaho01 = data.frame( read_dta("C:/Users/Jose Pastor/Documents/datos_documents/enaho/2020/737-Modulo01/737-Modulo01/enaho01-2020-100.dta") )36enaho34 = data.frame( read_dta("C:/Users/Jose Pastor/Documents/datos_documents/enaho/2020/737-Modulo34/737-Modulo34/sumaria-2020.dta") )3738# Merge39merge_base_2020 <- merge( enaho01, enaho34,40by = c("conglome", "vivienda", "hogar"),41all.x = T, suffixes = c("",".y"))4243# eliminando columnas con terminacion .y44index <- grep(".y$", colnames(merge_base_2020))45merge_base_2020 <- merge_base_2020[, - index]46474849#------- Juntando bases del 2019 y 2020 --------5051base_2019_2020 <- bind_rows(merge_base_2019, merge_base_2020) # une correctamente bases con columnas diferentes5253base_2019_2020$ubigeo_dep <- substr(base_2019_2020$ubigeo, 1, 2) # 1 : a partir del la posicion 154# 2 : substraer 2 digitos55base_2019_2020$ubigeo_dep <- strtoi(base_2019_2020$ubigeo_dep) # convirtiendo a int para futuro merge5657### Deflactor espacial58#despacial_ldnew <- data.frame( read_dta("C:/Users/Jose Pastor/Documents/datos_documents/enaho/2020/737-Modulo34/737-Modulo34/ConstVarGasto-Metodologia actualizada/Gasto2020/Bases/despacial_ldnew.dta") )5960#base_final <- merge( base_final, despacial_ldnew,61# by.x = c("dominio"),62# by.y = c("dominioA"),63# all = TRUE64# )656667### Deflactor temporal68deflactores_base2020_new <- data.frame( read_dta("C:/Users/Jose Pastor/Documents/datos_documents/enaho/2020/737-Modulo34/737-Modulo34/ConstVarGasto-Metodologia actualizada/Gasto2020/Bases/deflactores_base2020_new.dta") )69deflactores_base2020_new <- deflactores_base2020_new[ , c("dpto", "aniorec", "i00") ]7071# inner merge con base deflactores72base_2019_2020 <- merge( base_2019_2020, deflactores_base2020_new,73by.x = c("ubigeo_dep", "a�o"),74by.y = c("dpto", "aniorec"),75all.x = T76)7778# dividiento variables de ingreso y gasto por mieperho, 12, ld e i0079base_2019_2020$ingreso_deflact <- base_2019_2020$inghog1d / (12 * base_2019_2020$mieperho * base_2019_2020$ld * base_2019_2020$i00)80base_2019_2020$gasto_deflact <- base_2019_2020$gashog2d / (12 * base_2019_2020$mieperho * base_2019_2020$ld * base_2019_2020$i00)8182base_2019_2020 <- base_2019_2020[order (base_2019_2020$conglome, base_2019_2020$vivienda, base_2019_2020$hogar), ]83848586878889#---------------- 2. Salario por hora del trabajador dependiente (Python y R) --------------------------------9091# Cargando modulo 0592enaho05 = data.frame( read_dta("C:/Users/Jose Pastor/Documents/datos_documents/enaho/2020/737-Modulo05/737-Modulo05/enaho01a-2020-500.dta") )93enaho05 <- enaho05[ , c("i524e1", "i538e1", "i513t", "i518") ]9495# reemplazando NA por ceros96enaho05[is.na(enaho05)] <- 09798# generando variables necesarias99enaho05$ingreso <- enaho05$i524e1 + enaho05$i538e1100enaho05$horas <- enaho05$i513t + enaho05$i518101102# reemplazando NA por 0103enaho05$ingreso <- replace_na(enaho05$ingreso, 0)104enaho05$horas <- replace_na(enaho05$horas, 0)105106# salario por hora107enaho05$sal_hora_depend <- enaho05$ingreso / (enaho05$horas * 52)108109# Si un salario por hora resulta 0, convertir a missing.110enaho05$sal_hora_depend <- replace(enaho05$sal_hora_depend, enaho05$sal_hora_depend == 0, NaN)111112113114115116117#------------------ 3. Groupby (Python y R) --------------------------------118119enaho02 = data.frame( read_dta("C:/Users/Jose Pastor/Documents/datos_documents/enaho/2020/737-Modulo02/737-Modulo02/enaho01-2020-200.dta") )120enaho34 = data.frame( read_dta("C:/Users/Jose Pastor/Documents/datos_documents/enaho/2020/737-Modulo34/737-Modulo34/sumaria-2020.dta") )121122# identificando hogares con algun miembro mayor a 65 a�os123enaho02_1 <- enaho02 %>% group_by(conglome, vivienda, hogar ) %>%124summarise( edad_max = max(p208a), .groups = "keep" )125126# inner merge127base_final_2 <- merge( enaho02_1, enaho34,128by = c("conglome", "vivienda", "hogar"),129all = FALSE130)131132## Creando dummy pobreza y mayor a 65 a�os133# La estrategia es generara dummies tanto para pobreza y mayor a 65 a�os134# Luego se sumaran las dummies y aquellas que resulten 2 es porque cumple la condicion.135# Finalmente, se convertira el 2 en 1 para tener una dummy que cumpla con las condiciones.136137base_final_2 <- base_final_2 %>%138mutate(gasto_month_pc = base_final_2$gashog2d / (12*base_final_2$mieperho)) %>%139mutate(dummy_pobre = ifelse( gasto_month_pc < base_final_2$linea ,1401,141ifelse(!is.na(base_final_2$gashog2d), 0, NA) ) )142143base_final_2 <- base_final_2 %>%144mutate(dummy_mayor65 = ifelse( edad_max > 65,1451,1460))147# sumando dummies148base_final_2$dummy_suma = base_final_2$dummy_pobre + base_final_2$dummy_mayor65149150# reemplazando 2 por 1151base_final_2 <- base_final_2 %>%152mutate(dummy_pobre_mayor65 = ifelse( dummy_suma == 2,1531,1540 ))155156157158159160#------------------ 4. Indicadores (Solo en R) --------------------------------161162# 1.163# porcentaje que hogares a nivel departamental (o regi�n) que se beneficia del programa Juntos164165# cargando modulo 37166enaho37 = data.frame( read_dta("C:/Users/Jose Pastor/Documents/datos_documents/enaho/2020/737-Modulo37/737-Modulo37/enaho01-2020-700.dta") )167168# generando ubigeo_dep169enaho37['ubigeo_dep'] <- substr(enaho37$ubigeo, 1, 2)170171172# modulo37 y module02173mod_37_02 <- merge( enaho02, enaho37,174by = c("conglome", "vivienda", "hogar"),175all = FALSE, suffixes = c("",".y"))176177# eliminando columnas con terminacion .y178index <- grep(".y$", colnames(sumaria_mod02))179sumaria_mod02 <- sumaria_mod02[, - index]180181# indicando el dise�o muestral de la encuesta182mod_37_02 <- mod_37_02 %>% as_survey_design(ids = conglome,183strata = estrato,184weight = facpob07185)186187# porcentaje de hogares a nivel departamental (o regi�n) que se beneficia del programa188df_hogares_juntos <- mod_37_02 %>% group_by(ubigeo_dep) %>%189summarise( prom_horaes_juntos = survey_mean(p710_04 , na.rm = T), .groups = "keep" )190191192193# 2.194195# De Sumaria (modulo 34) y module02196sumaria_mod02 <- merge( enaho02, enaho34,197by = c("conglome", "vivienda", "hogar"),198all = FALSE, suffixes = c("",".y"))199200# eliminando columnas con terminacion .y201index <- grep(".y$", colnames(sumaria_mod02))202sumaria_mod02 <- sumaria_mod02[, - index]203204# generando varialbe departamento y porcentaje de gasto en salud anual205sumaria_mod02['ubigeo_dep'] <- substr(sumaria_mod02$ubigeo, 1, 2)206sumaria_mod02['gasto_salud_anual_porcentaje'] <- sumaria_mod02$gru51hd / sumaria_mod02$gashog2d207208# indicando el dise�o muestral de la encuesta209sumaria_mod02_srvy <- sumaria_mod02 %>% as_survey_design(ids = conglome,210strata = estrato,211weight = facpob07212)213214# promedio del gasto anual en salud215prom_gast_anual_salud <- sumaria_mod02_srvy %>% group_by(ubigeo_dep) %>%216summarise( prom_gast_anual_salud = survey_mean(gasto_salud_anual_porcentaje, na.rm = T), .groups = "keep" )217218219220221222223224225