Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
robertopucp
GitHub Repository: robertopucp/1eco35_2022_2
Path: blob/main/Trabajo_grupal/WG6/Grupo_9_r_Pregunta3.R
2714 views
1
### Pregunta 3 #### Grupo 9 ####
2
3
#library(fastDummies) # crear dummy
4
#library(tidyverse) # dplyr, ggplot2, tdyr
5
6
pacman::p_load(haven,dplyr, stringr)
7
8
9
"1.0 Set Directorio"
10
11
user <- Sys.getenv("USERNAME") # username
12
13
setwd( paste0("C:/Users/",user,"/Documents/GitHub/1ECO35_2022_2/Grupo9") )
14
15
16
"2.0 Cargar dataset de ENAHO"
17
18
enaho02 <- read_dta("../../enaho/2020/737-Modulo02/737-Modulo02/enaho01-2020-200.dta")
19
sumaria <- read_dta("../../enaho/2020/737-Modulo34/737-Modulo34/sumaria-2020.dta")
20
21
"3.0 Mantener variables de interes"
22
enaho02 <- enaho02[ ,c("conglome", "vivienda", "hogar" ,
23
"p208a") ]
24
25
sumaria <- sumaria[ ,c("conglome", "vivienda", "hogar" ,
26
"pobreza", "linea") ]
27
28
29
"4.0 Group_by"
30
31
enaho02 <- enaho02 %>% group_by(conglome, vivienda, hogar) %>%
32
summarise(
33
p208a = max(p208a, na.rm=T), .groups = "keep"
34
)
35
36
#Mantener la observación del adulto de mayor edad por hogar.
37
#La lógica es que, si el individuo no es mayor de 65, entonces, ningún
38
#otro individuo del hogar lo será.
39
#Luego, si este individuo es mayor 65, el hogar ya puede ser clasificado
40
#en este requisito como 'apto' (pudiendo haber otras personas del hogar
41
#que también son mayores a 65 o no).
42
43
"5.0 Juntar bases"
44
# _merge3 == 3 Mantener solo la intercepción entre bases
45
46
enaho_2020 <- merge(enaho02, sumaria,
47
by = c("conglome", "vivienda", "hogar")
48
)
49
50
"6.0 Crear dummy que cumpla ambos requisitos"
51
# Requisito 1: ser un hogar con adulto mayor a 65
52
# p208a >= 65
53
54
# Requisito 2: ser hogar pobre (o extremo pobre)
55
# pobreza < 3 ==> pues 1= extremo pobre y 2 = pobre
56
57
58
enaho_2020 <- enaho_2020 %>%
59
mutate(accesitario = ifelse( p208a >= 65 & pobreza < 3 ,
60
1 , # si cumple condiciones indica 1
61
ifelse(!is.na(enaho_2020$p208a ) | !is.na(enaho_2020$p208a ) ,
62
0 , # caso contrario es 0
63
NA) ) # a menos que exista missings en cuyo caso colocar na
64
)
65
"7.0 Respuestas"
66
table(enaho_2020$accesitario)
67
View(enaho_2020['accesitario'])
68
#dummy accesitario = 1 ==> es candidato al programa
69
70
#resulta en la misma cantidad de accesitarios que los
71
#hallados con Python
72
73
74
75