Path: blob/main/Trabajo_grupal/WG6/Grupo_6_R_.R
2714 views
#####################################1####### Grupo 6 - R #######2#####################################34#----------------------------------------------------------------------------------------------------5########## Pregunta 1 ##########6########################################78#install.packages("stringr")91011library(haven) # Libreria que lee archivos como stata o spss12library(dplyr) # para limpieza de datos13library(stringr) # grep for regular expression14library(fastDummies) # para crear una dummy15library(srvyr) # Libreria para declarar diseño muestral de una encuesta16library(survey)1718################################################################################19##### PRIMERO, HACIENDO MERGE: Para fijar la dirección de la base de datos2021"1 - Set Directorio"2223user <- Sys.getenv("USERNAME")2425setwd( paste0("C:/Users/",user,"/Documents/GitHub/1ECO35_2022_2/Trabajo_grupal/WG6") )2627##### Cargamos la base de datos de ENAHO, indicando el nro de salidas para reconocer la base28"2 - Load dataset de ENAHO"2930enaho01 <- read_dta("../../../../enaho/2020/737-Modulo01/737-Modulo01/enaho01-2020-100.dta")313233enaho34 <- read_dta("../../../../enaho/2020/737-Modulo34/737-Modulo34/sumaria-2020.dta")343536enaho01<- data.frame(3738read_dta("../../../../enaho/2020/737-Modulo01/737-Modulo01/enaho01-2020-100.dta")3940)4142enaho34 = data.frame(43read_dta("../../../../enaho/2020/737-Modulo34/737-Modulo34/sumaria-2020.dta")44)4546##### Usando conglome para juntar las bases47"3 - conglome section"48"Left merge"4950#enaho34: master data51#enaho01: using data5253##### Para $ cuando el texto finaliza con .y54enaho_merge <- merge(enaho34, enaho01,55by = c("conglome", "vivienda", "hogar",56"ubigeo", "dominio", "estrato"),57all.x = T, suffixes = c("",".y")58)5960index <- grep(".y$", colnames(enaho_merge)) # Regular regular6162merge_base_2020 <- enaho_merge[, - index]6364"ENAHO 2019"65enaho01_1 <- read_dta("../../../../enaho/2019/687-Modulo01/687-Modulo01/enaho01-2019-100.dta")6667enaho34_1 <- read_dta("../../../../enaho/2019/687-Modulo34/687-Modulo34/sumaria-2019.dta")6869##### Usando merge para la base70"4 - merge section"7172enaho_merge <- enaho_merge[ ,c("conglome", "vivienda", "hogar" ,"ubigeo",73"aÑo" , "mieperho", "inghog1d",74"gashog2d", "ld") ]7576################################################################################77##### SEGUNDO HACIENDO APPEND78merge_append <- bind_rows(merge_base_2019, merge_base_2020) # bind_rows from dyplr7980unique(merge_append$aÑo)8182#rename8384merge_append <- merge_append %>% dplyr::rename(aÑo = aÑo.x,ubigeo = ubigeo.x)8586# sibstr permite sustraer digitos de un string, texto, caracter8788merge_append['ubigeo_dep'] = substr(merge_append$ubigeo, 1, 2)8990################################################################################91##### TERCERO HACIENDO LA DEFLACTACIÓN9293deflactores_base2020_new <- read_dta("../../../../enaho/2020/737-Modulo34/737-Modulo34/ConstVarGasto-Metodologia actualizada/Gasto2020/Bases/deflactores_base2020_new.dta")9495deflactores_base2020_new <- deflactores_base2020_new %>% dplyr::rename(aÑo = aniorec)9697"4 - Merge section deflactores"9899# Se aplica el merge, utilizando las llaves para variables dpto y aniorec.100#merge_append: master data101#deflactores_base2020_new: using data102103enaho_merge_defla <- merge(merge_append, deflactores_base2020_new,104by = c("dpto", "aÑo"),105all.x = T, suffixes = c("","")106)107108colnames(enaho_merge_defla)109110enaho_merge_defla <- enaho_merge_defla %>%111mutate(ingreso_month_pc = enaho_merge_defla$inghog1d/(12*enaho_merge_defla$mieperho*enaho_merge_defla$ld*enaho_merge_defla$i00),112gasto_month_pc = enaho_merge_defla$gashog2d/(12*enaho_merge_defla$mieperho*enaho_merge_defla$ld*enaho_merge_defla$i00)113)114115names(deflactores_base2020_new)116117#----------------------------------------------------------------------------------------------------118########## Pregunta 2 ##########119########################################120121################################################################################122##### PRIMERO, HACIENDO EL GROUP BY123124##### Se importan las librearias necesarias125126library(haven)127library(dplyr)128library(stringr)129library(fastDummies)130library(srvyr)131library(survey)132133##### Se hace el set para el directorio134135user <- Sys.getenv("USERNAME")136137setwd( paste0("C:/Users/",user,"/Documents/GitHub/1ECO35_2022_2/Trabajo_grupal/WG6") ) # set directorio138139##### Indicamos para que lea la base de datos140141enaho_2 <- read_dta(r"../../../enaho/2020/737-Modulo02/737-Modulo02/enaho01-2020-200.dta")142143##### Hacemos un avistamiento a la base de datos144145enaho_2$dominio146147enaho_2 <- data.frame(148149read_dta("../../../enaho/2020/737-Modulo02/737-Modulo02/enaho01-2020-200.dta")150151)152153##### Antes del groupby analizamos cuáles son los labels de la base154155names(enaho_2)156157##### Hacemos la seleccion de las variables a utilizar158159hogares <- enaho_2[ , c("conglome", "vivienda", "hogar", "p208a") ]160161##### Hacemos el merge con modulo 34 para hallar datos que no tenemos como pobreza162163##### ENTONCES, primero se carga la base de datos el modulo 34 y obtenemos los labels164165enaho34 = data.frame(166read_dta("../../../enaho/2020/737-Modulo34/737-Modulo34/sumaria-2020.dta")167)168169names(enaho34)170171##### LUEGO, filtramos la base mediante groupby para solo quedarse con lo necesario, es decir pobreza172173hogares34 <- enaho34[ , c("conglome", "vivienda", "hogar", "pobreza") ]174175##### LUEGO, efectuamos merge entre hogares 34 y hogares176177enaho_merge <- merge(hogares, hogares34,178by = c("conglome", "vivienda", "hogar")179)180181print (enaho_merge)182183##### PARA IR FINALIZANDO, se crea la dummy para verificar si hogar es: pobre y con algun miembro de hogar mayor a 65 años184185enaho_merge['dummypension'] <- (enaho_merge['p208a'] >= 65) & (enaho_merge['pobreza'] < 3)*1186## Se puede obtener la dummy mediante la funci?n if_else(), as.numeric() o multiplicando por 1 lo que deseamos evaluar,187## en este caso, pobreza del hogar y el requisito de la edad.188189190##### FINALMENTE, vemos la dummy, donde ser true (=1) refiere que si se cumplen ambas condiciones191# y false (=0) si no se cumplen ambas condiciones192193print(enaho_merge['dummypension'])194195#----------------------------------------------------------------------------------------------------196########## Pregunta 3 ##########197########################################198199################################################################################200##### HACIENDO Indicadores ######201202##### Primero importamos las librerias203library(haven)204library(dplyr)205library(stringr)206library(fastDummies)207library(srvyr) # q nos permite declarar como una encuesta208library(survey)209210#especificamos el tamaño muestral de la encuesta211#seteamos el directorio212213user <- Sys.getenv("USERNAME")214215setwd( paste0("C:/Users/",user,"/Documents/data_enaho") )216217#cargamos la base de datos de la ENAHO a utilizar218219enaho37 = data.frame(220read_dta("C:/Users/User/Documents/enaho/2020/737-Modulo37/737-Modulo37/enaho01-2020-700.dta")221)222223#para facilidad del ejercicio, creamos la variable ubigeo_dep y les asignamos nombre sengun su numero de ubigeo224225enaho37['ubigeo_dep'] = substr(enaho37$ubigeo, 1, 2)226227#sesustrae los primero ceros de la varaible ubigeo ya que se repite en cada categoria228enaho37['ubigeo_dep_2'] = paste(substr(enaho37$ubigeo,1,2),229"0000", sep = "")230231#luego se filtran los ultimos numeros, lo cual nos permitiran indicar cuales son los nombres de las regiones dentro del analisis muestral232enaho37 <- enaho37 %>% filter(233enaho37$ubigeo_dep %in% c("15","03","04","12") )234235enaho37 <- enaho37 %>%236mutate(region = case_when(ubigeo_dep == "04" ~ "Arequipa",237ubigeo_dep == "03" ~ "Apurimac",238ubigeo_dep == "12" ~ "Junin",239ubigeo_dep == "15" ~ "Lima") )240241#Ahora delimitaremos a las variables que nos resultan importante en este ejercicio242243enaho37 <- enaho37[, c("conglome", "vivienda", "hogar", "ubigeo", "dominio", "estrato", "ubigeo_dep", "p710_04")]244245#hallamos el porcentaje de horgares a nivel departamental que se benefica del programa en base a la variable hallada anteriormente246247survey_enaho <- enaho37 %>% as_survey_design(ids = conglome, strata = estrato,248ubication = ubigeo_dep)249250ind1 <- survey_enaho %>% dplyr::filter(p710_04=1) %>%251252mutate(253g1 = ifelse(p710_04=1),254255) %>% group_by(ubigeo_dep) %>%256257sumarise(258gp1 = sum(g1), hogar = n(),259g_percent = gp1/hogar260)261262##### Para la segunda parte del ejercicio cargamos las bases de datos del modulo 37, es decir sumaria-2020.dta y sumaria-2020-12g.dta263264enaho34 = data.frame(265read_dta("C:/Users/User/Documents/enaho/2020/737-Modulo34/737-Modulo34/sumaria-2020.dta")266)267268enaho34_12g = data.frame(269read_dta("C:/Users/User/Documents/enaho/2020/737-Modulo34/737-Modulo34/sumaria-2020-12g.dta")270)271272#####Realizamos un merge completo para crear una base de datos que contenga las varaibles tanto de la base de sumaria-2020 y sumaria-2020-12g273#### Por lo que lo haremos en funcion de ls variables que se repiten en ambas base de datos: "conglome", "vivienda" y "hogar"274275enaho_merge_outer <- merge(enaho34, enaho34_12g,276by = c("conglome", "vivienda", "hogar"),277all.x = T, all.y = T)278279280281282