library(openxlsx)
library(rmarkdown)
library(tidyverse)
library(haven)
library(foreign)
library(survey) Una ruta hacia una carpeta donde almacenaremos los excel que se elaborarán posteriormente, que contarán con dataset de información construida.
ruta <- "C:\\Users\\DINDES08\\Desktop\\Senaju Data\\SenData" La base de identidad 2020 la variable discapacidad tiene la denominación ‘p300_6_1’ para el 2022 ‘p300y_1’. Respecto al 2020 la variable es p300c, en 2022 es p300z.
choose.files()## character(0)
identidad2022<- read_spss("C:\\Users\\Trabajo\\Desktop\\ENAPRES\\Identidad-785-modulo1729-2022\\CAP_300_URBANO_RURAL_5.sav")
enapres <- identidad2022Aquellas variables que nos sirven para realizar las desagregaciones posteriores.
enapres <- enapres %>% mutate(sexo = ifelse(P207==1,"Hombre",ifelse(P207==2,"Mujer",0)))
table(enapres$sexo, useNA = "alw")##
## Hombre Mujer <NA>
## 69301 71744 0
NO TENEMOS UBIGEO PERO SÍ TENEMOS LOS CÓDIGOS DE DEPARTAMENTO, PROVINCIA Y DISTRITO, EL UBIGEO ES LA COMBINACIÓN DE ESTOS ELEMENTOS
enapres$ubigeo <- paste0(enapres$CCDD,enapres$CCPP,enapres$CCDI)
enapres$ubigeonum <- as.numeric(enapres$ubigeo)
enapres <- enapres %>%
mutate(regiones2 =
ifelse(ubigeonum >= 010101 & ubigeonum <= 010707, "Amazonas",
ifelse(ubigeonum >= 020101 & ubigeonum <= 022008, "Ancash",
ifelse(ubigeonum >= 030101 & ubigeonum <= 030714, "Apurimac",
ifelse(ubigeonum >= 040101 & ubigeonum <= 040811, "Arequipa",
ifelse(ubigeonum >= 050101 & ubigeonum <= 051108, "Ayacucho",
ifelse(ubigeonum >= 060101 & ubigeonum <= 061311, "Cajamarca",
ifelse(ubigeonum >= 070101 & ubigeonum <= 070107, "Callao",
ifelse(ubigeonum >= 080101 & ubigeonum <= 081307, "Cusco",
ifelse(ubigeonum >= 090101 & ubigeonum <= 090723, "Huancavelica",
ifelse(ubigeonum >= 100101 & ubigeonum <= 101108, "Huanuco",
ifelse(ubigeonum >= 110101 & ubigeonum <= 110508, "Ica",
ifelse(ubigeonum >= 120101 & ubigeonum <= 120909, "Junin",
ifelse(ubigeonum >= 130101 & ubigeonum <= 131203, "La Libertad",
ifelse(ubigeonum >= 140101 & ubigeonum <= 140312, "Lambayeque",
ifelse(ubigeonum >= 150101 & ubigeonum <= 150143, "Lima Metropolitana",
ifelse(ubigeonum >= 150201 & ubigeonum <= 151033, "Lima Region",
ifelse(ubigeonum >= 160101 & ubigeonum <= 160804, "Loreto",
ifelse(ubigeonum >= 170101 & ubigeonum <= 170303, "Madre de Dios",
ifelse(ubigeonum >= 180101 & ubigeonum <= 180303, "Moquegua",
ifelse(ubigeonum >= 190101 & ubigeonum <= 190308, "Pasco",
ifelse(ubigeonum >= 200101 & ubigeonum <= 200806, "Piura",
ifelse(ubigeonum >= 210101 & ubigeonum <= 211307, "Puno",
ifelse(ubigeonum >= 220101 & ubigeonum <= 221005, "San Martín",
ifelse(ubigeonum >= 230101 & ubigeonum <= 230408, "Tacna",
ifelse(ubigeonum >= 240101 & ubigeonum <= 240304, "Tumbes",
ifelse(ubigeonum >= 250101 & ubigeonum <= 250401, "Ucayali",NA)))))))))))))))))))))))))))
table(enapres$regiones2, useNA = "alw")##
## Amazonas Ancash Apurimac Arequipa
## 5764 5478 4773 4863
## Ayacucho Cajamarca Callao Cusco
## 5906 5517 6293 5065
## Huancavelica Huanuco Ica Junin
## 4684 5240 5125 5122
## La Libertad Lambayeque Lima Metropolitana Lima Region
## 6050 5681 9236 3945
## Loreto Madre de Dios Moquegua Pasco
## 7254 4885 3771 4687
## Piura Puno San Martín Tacna
## 6589 4945 6275 3767
## Tumbes Ucayali <NA>
## 4063 6067 0
enapres$REGIONNATU <- as.factor(enapres$REGIONNATU)
enapres <- enapres %>%
mutate(regnat = ifelse(REGIONNATU=="1","Costa", ifelse(REGIONNATU=="2","Sierra", ifelse(REGIONNATU=="3","Selva",0))))
table(enapres$regnat, useNA = "alw")##
## Costa Selva Sierra <NA>
## 52598 34438 54009 0
enapres <- enapres %>%
mutate(pobreza3 = ifelse(ESTRATO==1,"NSE A",
ifelse(ESTRATO==2, "NSE B",
ifelse(ESTRATO==3, "NSE C",
ifelse(ESTRATO==4, "NSE D",
ifelse(ESTRATO==5, "NSE E",0))))))
table(enapres$pobreza3, useNA = "alw")##
## NSE A NSE B NSE C NSE D NSE E <NA>
## 7120 13838 20334 25785 24219 49749
enapres <- enapres %>% mutate(lengua = case_when(
P300Z == 1 ~ "Andino/Amazónico",
P300Z == 2 ~ "Andino/Amazónico",
P300Z == 3 ~ "Andino/Amazónico",
P300Z == 4 ~ "Andino/Amazónico",
P300Z == 5 ~ "Andino/Amazónico",
P300Z == 6 ~ "Andino/Amazónico",
P300Z == 7 ~ "Andino/Amazónico",
P300Z == 8 ~ "Andino/Amazónico",
P300Z == 9 ~ "Andino/Amazónico",
P300Z == 10 ~ "Castellano",
P300Z == 11 ~ "lengua extranjera",
P300Z == 12 ~ "lengua extranjera",
P300Z == 13 ~ "Otro",
P300Z == 14 ~ "Otro",
TRUE ~ NA
))
enapres$lengua <- as.factor(enapres$lengua)
table(enapres$lengua, useNA = "alw")##
## Andino/Amazónico Castellano lengua extranjera Otro
## 24936 102116 126 234
## <NA>
## 13633
#endes <- endes %>%
#mutate(discapacidad = ifelse(QD333_1==1 | QD333_2 ==1 | QD333_3==1 | #QD333_4==1 | QD333_5==1 | QD333_6==1,1,0))
enapres <- enapres %>%
mutate(discapacidad1 = case_when(
P300Y_1 == 1 ~ 1,
P300Y_2== 1 ~ 1,
P300Y_3 == 1 ~ 1,
P300Y_4 == 1 ~ 1,
P300Y_5 == 1 ~ 1,
P300Y_6 == 1 ~ 1,
is.na(P300Y_1) ~ 0,
is.na(P300Y_2) ~ 0,
is.na(P300Y_3) ~ 0,
is.na(P300Y_4) ~ 0,
is.na(P300Y_5) ~ 0,
is.na(P300Y_6) ~ 0,
TRUE ~ 0
))
table(enapres$discapacidad1, useNA = "alw")##
## 0 1 <NA>
## 136222 4823 0
enapres <- enapres %>%
mutate(defiet2 = case_when(
P319 == 1 ~ "Quechua",
P319 == 2 ~ "Aimara",
P319 == 3 ~ "Nativo o indigena de la Amazonia",
P319 == 4 ~ "Perteneciente o parte de otro pueblo indigena u originario",
P319 == 5 ~ "Negro/moreno/zambo/mulato/pueblo afroperuano
o afrodescendiente",
P319 == 6 ~ "Blanco",
P319 == 7 ~ "Mestizo",
P319 == 8 ~ "Otro",
TRUE ~ NA_character_
))
enapres$defiet2 <- as.factor(enapres$defiet2)
table(enapres$defiet2, useNA = "alw")##
## Aimara
## 3409
## Blanco
## 5942
## Mestizo
## 42867
## Nativo o indigena de la Amazonia
## 2363
## Negro/moreno/zambo/mulato/pueblo afroperuano \no afrodescendiente
## 10357
## Otro
## 11418
## Perteneciente o parte de otro pueblo indigena u originario
## 102
## Quechua
## 23343
## <NA>
## 41244
table(enapres$P301B, useNA = "alw")##
## 1 2 3 4 5 6 7 8 9 10 11 12 <NA>
## 8603 6491 26135 14295 19685 24766 126 4072 8282 5936 7448 1573 13633
enapres <- enapres %>%
mutate(alcanzado = ifelse(P301B==4 | P301B==5, "primaria completa",
ifelse(P301B==6 | P301B==8 | P301B==10, "secundaria completa",
ifelse(P301B==9, "superior no universitaria completa",
ifelse(P301B==11,"Superior universitaria completa",
ifelse(P301B==12, "postgrado",
ifelse(P301B==1 | P301B==2 | P301B==3, "primaria incompleta o menos", NA)))))))
enapres$alcanzado <- as.factor(enapres$alcanzado)
table(enapres$alcanzado, useNA = "alw") ##
## postgrado primaria completa
## 1573 33980
## primaria incompleta o menos secundaria completa
## 41229 34774
## superior no universitaria completa Superior universitaria completa
## 8282 7448
## <NA>
## 13759
Hay que darle las etiquetas pertinentes y convertirlo a factor
enapres <- enapres %>% mutate(osexual = case_when(P322==1 ~ "Heterosexual",
P322==2 ~ "Homosexual(gay o lesbiana",
P322==3 ~ "Bisexual",
P322==4 ~ "Pansexual",
P322==5 ~ "Asexual",
P322==6 ~ "Otra",
P322==7 ~ "Ninguna",
P322==8 ~ "No responde/No contesta",
TRUE ~ NA_character_))
enapres$osexual <- as.factor(enapres$osexual)
table(enapres$osexual, useNA = "alw")##
## Asexual Bisexual Heterosexual
## 2420 1205 64750
## Homosexual(gay o lesbiana Ninguna No responde/No contesta
## 396 14570 5780
## Otra Pansexual <NA>
## 229 343 51352
enapres <- enapres %>% mutate(osexual2 = case_when(P322==1 ~ "Heterosexual",
P322==2 ~ "No heterosexual",
P322==3 ~ "No heterosexual",
P322==4 ~ "No heterosexual",
P322==5 ~ "No heterosexual",
P322==6 ~ "No heterosexual",
P322==7 ~ "Ninguna",
P322==8 ~ "No responde/No contesta",
TRUE ~ NA_character_))
enapres$osexual2<-as.factor(enapres$osexual2)
table(enapres$osexual2,useNA = "alw")##
## Heterosexual Ninguna No heterosexual
## 64750 14570 4593
## No responde/No contesta <NA>
## 5780 51352
enapres <- enapres %>% mutate(igenero=case_when(P323==1 ~ "Mujer",
P323==2 ~ "Hombre",
P323==3 ~ "Mujer trans/Transfemina",
P323==4 ~ "Hombre trans/Trans masculino",
P323==5 ~ "Otra",
P323==6 ~ "Ninguna",
P323==7 ~ "No responde/No contesta",))
enapres$igenero <- as.factor(enapres$igenero)
table(enapres$igenero, useNA = "alw")##
## Hombre Hombre trans/Trans masculino
## 39932 131
## Mujer Mujer trans/Transfemina
## 43798 214
## Ninguna No responde/No contesta
## 3383 2102
## Otra <NA>
## 133 51352
enapres <- enapres %>% mutate(juventud = ifelse(P208_A>=18 & P208_A<=29,"jovenes",NA))
table(enapres$juventud, useNA = "alw")##
## jovenes <NA>
## 23830 117215
EN ESTE CASO SE COLOCA NEST = TRUE YA QUE NO SON MUESTRAS ANIDADAS (PENDIENTE INDAGAR ESTO) EN LA BD 2017 SE USA EL “FACTORANUAL” EN LOS DEMÁS (2018,19,20 Y 21) “FACTOR”
# Diseño muestral para la ponderación de valores
encuesta = svydesign(data=enapres, id=~CONGLOMERADO, strata=~CCDD,
weights=~FACTOR, nest = TRUE)
# Función para generar un archivo excel con todas las desagregaciones en pestañas
generar_archivo_excel2 <- function(nombre_archivo, datos) {
workbook <- createWorkbook()
for (i in seq_along(datos)) {
addWorksheet(workbook, sheetName = paste("Datos", i-1, sep = ""))
writeData(workbook, sheet = paste("Datos", i-1, sep = ""), x = datos[[i]], colNames = TRUE)
}
saveWorkbook(workbook, nombre_archivo)
}# Calcular promedio, coeficiente de variación e intervalos de confianza
tabla0 <- svyby(~osexual2, ~juventud, encuesta, svymean, deff=F, na.rm=T)
cv0 <- cv(tabla0)
ic0 <- confint(tabla0)
tabla0generar_archivo_excel2("datos3.xlsx", list(tabla0,cv0,ic0))tabla1 <- svyby(~osexual2, ~juventud+regiones2, encuesta, svymean, deff=F, na.rm=T)
ic1 <- confint(tabla1)
cv1 <- cv(tabla1)
tabla1generar_archivo_excel2("datos5.xlsx", list(tabla1,cv1))tabla2 <- svyby(~osexual, ~juventud+osexual2, encuesta, svymean, deff=F, na.rm=T)
ic2 <- confint(tabla2)
cv2 <- cv(tabla2)
tabla2generar_archivo_excel2("datos6.xlsx", list(tabla2,cv2))tabla3 <- svyby(~alcanzado, ~juventud, encuesta, svymean, deff=F, na.rm=T)
ic3 <- confint(tabla3)
cv3 <- cv(tabla3)
tabla3generar_archivo_excel2("datos9.xlsx", list(tabla3,cv3))tabla4 <- svyby(~pobreza3, ~juventud, encuesta, svymean, deff=F, na.rm=T)
ic4 <- confint(tabla4)
cv4 <- cv(tabla4)
tabla4generar_archivo_excel2("datos101.xlsx", list(tabla4,cv4))tabla6 <- svyby(~igenero, ~juventud, encuesta, svymean, deff=F, na.rm=T)
ic6 <- confint(tabla6)
cv6 <- cv(tabla6)
tabla6generar_archivo_excel2("datos11.xlsx", list(tabla6,cv6))