Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
robertopucp
GitHub Repository: robertopucp/1eco35_2022_2
Path: blob/main/Trabajo_grupal/WG6/Grupo_6_R_.R
2714 views
1
#####################################
2
####### Grupo 6 - R #######
3
#####################################
4
5
#----------------------------------------------------------------------------------------------------
6
########## Pregunta 1 ##########
7
########################################
8
9
#install.packages("stringr")
10
11
12
library(haven) # Libreria que lee archivos como stata o spss
13
library(dplyr) # para limpieza de datos
14
library(stringr) # grep for regular expression
15
library(fastDummies) # para crear una dummy
16
library(srvyr) # Libreria para declarar diseño muestral de una encuesta
17
library(survey)
18
19
################################################################################
20
##### PRIMERO, HACIENDO MERGE: Para fijar la dirección de la base de datos
21
22
"1 - Set Directorio"
23
24
user <- Sys.getenv("USERNAME")
25
26
setwd( paste0("C:/Users/",user,"/Documents/GitHub/1ECO35_2022_2/Trabajo_grupal/WG6") )
27
28
##### Cargamos la base de datos de ENAHO, indicando el nro de salidas para reconocer la base
29
"2 - Load dataset de ENAHO"
30
31
enaho01 <- read_dta("../../../../enaho/2020/737-Modulo01/737-Modulo01/enaho01-2020-100.dta")
32
33
34
enaho34 <- read_dta("../../../../enaho/2020/737-Modulo34/737-Modulo34/sumaria-2020.dta")
35
36
37
enaho01<- data.frame(
38
39
read_dta("../../../../enaho/2020/737-Modulo01/737-Modulo01/enaho01-2020-100.dta")
40
41
)
42
43
enaho34 = data.frame(
44
read_dta("../../../../enaho/2020/737-Modulo34/737-Modulo34/sumaria-2020.dta")
45
)
46
47
##### Usando conglome para juntar las bases
48
"3 - conglome section"
49
"Left merge"
50
51
#enaho34: master data
52
#enaho01: using data
53
54
##### Para $ cuando el texto finaliza con .y
55
enaho_merge <- merge(enaho34, enaho01,
56
by = c("conglome", "vivienda", "hogar",
57
"ubigeo", "dominio", "estrato"),
58
all.x = T, suffixes = c("",".y")
59
)
60
61
index <- grep(".y$", colnames(enaho_merge)) # Regular regular
62
63
merge_base_2020 <- enaho_merge[, - index]
64
65
"ENAHO 2019"
66
enaho01_1 <- read_dta("../../../../enaho/2019/687-Modulo01/687-Modulo01/enaho01-2019-100.dta")
67
68
enaho34_1 <- read_dta("../../../../enaho/2019/687-Modulo34/687-Modulo34/sumaria-2019.dta")
69
70
##### Usando merge para la base
71
"4 - merge section"
72
73
enaho_merge <- enaho_merge[ ,c("conglome", "vivienda", "hogar" ,"ubigeo",
74
"aÑo" , "mieperho", "inghog1d",
75
"gashog2d", "ld") ]
76
77
################################################################################
78
##### SEGUNDO HACIENDO APPEND
79
merge_append <- bind_rows(merge_base_2019, merge_base_2020) # bind_rows from dyplr
80
81
unique(merge_append$aÑo)
82
83
#rename
84
85
merge_append <- merge_append %>% dplyr::rename(aÑo = aÑo.x,ubigeo = ubigeo.x)
86
87
# sibstr permite sustraer digitos de un string, texto, caracter
88
89
merge_append['ubigeo_dep'] = substr(merge_append$ubigeo, 1, 2)
90
91
################################################################################
92
##### TERCERO HACIENDO LA DEFLACTACIÓN
93
94
deflactores_base2020_new <- read_dta("../../../../enaho/2020/737-Modulo34/737-Modulo34/ConstVarGasto-Metodologia actualizada/Gasto2020/Bases/deflactores_base2020_new.dta")
95
96
deflactores_base2020_new <- deflactores_base2020_new %>% dplyr::rename(aÑo = aniorec)
97
98
"4 - Merge section deflactores"
99
100
# Se aplica el merge, utilizando las llaves para variables dpto y aniorec.
101
#merge_append: master data
102
#deflactores_base2020_new: using data
103
104
enaho_merge_defla <- merge(merge_append, deflactores_base2020_new,
105
by = c("dpto", "aÑo"),
106
all.x = T, suffixes = c("","")
107
)
108
109
colnames(enaho_merge_defla)
110
111
enaho_merge_defla <- enaho_merge_defla %>%
112
mutate(ingreso_month_pc = enaho_merge_defla$inghog1d/(12*enaho_merge_defla$mieperho*enaho_merge_defla$ld*enaho_merge_defla$i00),
113
gasto_month_pc = enaho_merge_defla$gashog2d/(12*enaho_merge_defla$mieperho*enaho_merge_defla$ld*enaho_merge_defla$i00)
114
)
115
116
names(deflactores_base2020_new)
117
118
#----------------------------------------------------------------------------------------------------
119
########## Pregunta 2 ##########
120
########################################
121
122
################################################################################
123
##### PRIMERO, HACIENDO EL GROUP BY
124
125
##### Se importan las librearias necesarias
126
127
library(haven)
128
library(dplyr)
129
library(stringr)
130
library(fastDummies)
131
library(srvyr)
132
library(survey)
133
134
##### Se hace el set para el directorio
135
136
user <- Sys.getenv("USERNAME")
137
138
setwd( paste0("C:/Users/",user,"/Documents/GitHub/1ECO35_2022_2/Trabajo_grupal/WG6") ) # set directorio
139
140
##### Indicamos para que lea la base de datos
141
142
enaho_2 <- read_dta(r"../../../enaho/2020/737-Modulo02/737-Modulo02/enaho01-2020-200.dta")
143
144
##### Hacemos un avistamiento a la base de datos
145
146
enaho_2$dominio
147
148
enaho_2 <- data.frame(
149
150
read_dta("../../../enaho/2020/737-Modulo02/737-Modulo02/enaho01-2020-200.dta")
151
152
)
153
154
##### Antes del groupby analizamos cuáles son los labels de la base
155
156
names(enaho_2)
157
158
##### Hacemos la seleccion de las variables a utilizar
159
160
hogares <- enaho_2[ , c("conglome", "vivienda", "hogar", "p208a") ]
161
162
##### Hacemos el merge con modulo 34 para hallar datos que no tenemos como pobreza
163
164
##### ENTONCES, primero se carga la base de datos el modulo 34 y obtenemos los labels
165
166
enaho34 = data.frame(
167
read_dta("../../../enaho/2020/737-Modulo34/737-Modulo34/sumaria-2020.dta")
168
)
169
170
names(enaho34)
171
172
##### LUEGO, filtramos la base mediante groupby para solo quedarse con lo necesario, es decir pobreza
173
174
hogares34 <- enaho34[ , c("conglome", "vivienda", "hogar", "pobreza") ]
175
176
##### LUEGO, efectuamos merge entre hogares 34 y hogares
177
178
enaho_merge <- merge(hogares, hogares34,
179
by = c("conglome", "vivienda", "hogar")
180
)
181
182
print (enaho_merge)
183
184
##### PARA IR FINALIZANDO, se crea la dummy para verificar si hogar es: pobre y con algun miembro de hogar mayor a 65 años
185
186
enaho_merge['dummypension'] <- (enaho_merge['p208a'] >= 65) & (enaho_merge['pobreza'] < 3)*1
187
## Se puede obtener la dummy mediante la funci?n if_else(), as.numeric() o multiplicando por 1 lo que deseamos evaluar,
188
## en este caso, pobreza del hogar y el requisito de la edad.
189
190
191
##### FINALMENTE, vemos la dummy, donde ser true (=1) refiere que si se cumplen ambas condiciones
192
# y false (=0) si no se cumplen ambas condiciones
193
194
print(enaho_merge['dummypension'])
195
196
#----------------------------------------------------------------------------------------------------
197
########## Pregunta 3 ##########
198
########################################
199
200
################################################################################
201
##### HACIENDO Indicadores ######
202
203
##### Primero importamos las librerias
204
library(haven)
205
library(dplyr)
206
library(stringr)
207
library(fastDummies)
208
library(srvyr) # q nos permite declarar como una encuesta
209
library(survey)
210
211
#especificamos el tamaño muestral de la encuesta
212
#seteamos el directorio
213
214
user <- Sys.getenv("USERNAME")
215
216
setwd( paste0("C:/Users/",user,"/Documents/data_enaho") )
217
218
#cargamos la base de datos de la ENAHO a utilizar
219
220
enaho37 = data.frame(
221
read_dta("C:/Users/User/Documents/enaho/2020/737-Modulo37/737-Modulo37/enaho01-2020-700.dta")
222
)
223
224
#para facilidad del ejercicio, creamos la variable ubigeo_dep y les asignamos nombre sengun su numero de ubigeo
225
226
enaho37['ubigeo_dep'] = substr(enaho37$ubigeo, 1, 2)
227
228
#sesustrae los primero ceros de la varaible ubigeo ya que se repite en cada categoria
229
enaho37['ubigeo_dep_2'] = paste(substr(enaho37$ubigeo,1,2),
230
"0000", sep = "")
231
232
#luego se filtran los ultimos numeros, lo cual nos permitiran indicar cuales son los nombres de las regiones dentro del analisis muestral
233
enaho37 <- enaho37 %>% filter(
234
enaho37$ubigeo_dep %in% c("15","03","04","12") )
235
236
enaho37 <- enaho37 %>%
237
mutate(region = case_when(ubigeo_dep == "04" ~ "Arequipa",
238
ubigeo_dep == "03" ~ "Apurimac",
239
ubigeo_dep == "12" ~ "Junin",
240
ubigeo_dep == "15" ~ "Lima") )
241
242
#Ahora delimitaremos a las variables que nos resultan importante en este ejercicio
243
244
enaho37 <- enaho37[, c("conglome", "vivienda", "hogar", "ubigeo", "dominio", "estrato", "ubigeo_dep", "p710_04")]
245
246
#hallamos el porcentaje de horgares a nivel departamental que se benefica del programa en base a la variable hallada anteriormente
247
248
survey_enaho <- enaho37 %>% as_survey_design(ids = conglome, strata = estrato,
249
ubication = ubigeo_dep)
250
251
ind1 <- survey_enaho %>% dplyr::filter(p710_04=1) %>%
252
253
mutate(
254
g1 = ifelse(p710_04=1),
255
256
) %>% group_by(ubigeo_dep) %>%
257
258
sumarise(
259
gp1 = sum(g1), hogar = n(),
260
g_percent = gp1/hogar
261
)
262
263
##### Para la segunda parte del ejercicio cargamos las bases de datos del modulo 37, es decir sumaria-2020.dta y sumaria-2020-12g.dta
264
265
enaho34 = data.frame(
266
read_dta("C:/Users/User/Documents/enaho/2020/737-Modulo34/737-Modulo34/sumaria-2020.dta")
267
)
268
269
enaho34_12g = data.frame(
270
read_dta("C:/Users/User/Documents/enaho/2020/737-Modulo34/737-Modulo34/sumaria-2020-12g.dta")
271
)
272
273
#####Realizamos un merge completo para crear una base de datos que contenga las varaibles tanto de la base de sumaria-2020 y sumaria-2020-12g
274
#### Por lo que lo haremos en funcion de ls variables que se repiten en ambas base de datos: "conglome", "vivienda" y "hogar"
275
276
enaho_merge_outer <- merge(enaho34, enaho34_12g,
277
by = c("conglome", "vivienda", "hogar"),
278
all.x = T, all.y = T)
279
280
281
282