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()
#datos2017 <- read_spss("C:\\Users\\Trabajo\\Desktop\\ENAPRES\\Seguridad - 596 - Modulo1239 - 2017\\CAP_600_URBANO_7.sav")
#datos2018 <- read_spss("C:\\Users\\Trabajo\\Desktop\\ENAPRES\\Seguridad - 626 - mod1374 - 2018\\CAP_600_URBANO_7.sav")
#datos2019 <- read_spss("C:\\Users\\Trabajo\\Desktop\\ENAPRES\\Segurdad - 761-Modulo1679 - 2019\\CAP_600_URBANO_7.sav")
#datos2020 <- read_spss("C:\\Users\\Trabajo\\Desktop\\ENAPRES\\Segurdad - 761-Modulo1679 - 2020\\CAP_600_URBANO_7.sav")
#datos2021 <- read_spss("C:\\Users\\Trabajo\\Desktop\\ENAPRES\\Segurdad - 761-Modulo1679 - 2021\\CAP_600_URBANO_7.sav")
seguridad2022 <- read_spss("C:\\Users\\DINDES08\\Desktop\\ENAPRES\\2022\\Seguridad 785-Modulo1731\\CAP_600_URBANO_7.sav")
identidad2022<- read_spss("C:\\Users\\DINDES08\\Desktop\\ENAPRES\\2022\\Identidad 785-Modulo1729\\CAP_300_URBANO_RURAL_5.sav")
identidad2022 <- subset(identidad2022, select=c("CONGLOMERADO","NSELV","TSELV","CCDD","CCPP","CCDI","VIVIENDA","HOGAR","P300_A","P300_C","P300Z","P319","P300Y_1","P300Y_2","P300Y_3","P300Y_4","P300Y_5","P300Y_6"))seguridad2022 <- seguridad2022 %>%
filter((P204 == 1 & P205 == 2) | (P204 == 2 & P206 == 1))
seguridad2022$referencial <- ifelse(seguridad2022$P201 != seguridad2022$P600_C, 1, 0)
seguridad2022 <- seguridad2022 %>% filter(referencial == 0)
table(seguridad2022$referencial, useNA = "alw")##
## 0 <NA>
## 63705 0
#FILTROS A LA BD2 AREA URBANA Y EDAD 15 a 99 años
seguridad2022 <- seguridad2022 %>% filter(AREA==1 & RESFIN<3 & P208_A>=15 & P208_A<99)PRIMERO HAY QUE CREAR UNA VARIABLE LLAVE ENTRE AMBAS BD, LLAMADA ID
seguridad2022$ID <- paste0(seguridad2022$CONGLOMERADO,seguridad2022$NSELV,seguridad2022$TSELV,seguridad2022$CCDD,seguridad2022$CCPP,seguridad2022$CCDI,seguridad2022$VIVIENDA,seguridad2022$HOGAR,seguridad2022$P600_A,seguridad2022$P600_C)
identidad2022$ID <- paste0(identidad2022$CONGLOMERADO,identidad2022$NSELV,identidad2022$TSELV,identidad2022$CCDD,identidad2022$CCPP,identidad2022$CCDI,identidad2022$VIVIENDA,identidad2022$HOGAR,identidad2022$P300_A,identidad2022$P300_C)
identidad2022 <- distinct(identidad2022, ID, .keep_all = TRUE)
table(duplicated(identidad2022$ID))##
## FALSE
## 141032
enapres <- left_join(seguridad2022,identidad2022, by=c("ID"))Aquellas 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>
## 29257 32967 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.x,enapres$CCPP.x,enapres$CCDI.x)
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
## 2085 2429 1999 2322
## Ayacucho Cajamarca Callao Cusco
## 2459 1990 4031 2012
## Huancavelica Huanuco Ica Junin
## 1796 1971 2047 2158
## La Libertad Lambayeque Lima Metropolitana Lima Region
## 2646 2552 5980 1625
## Loreto Madre de Dios Moquegua Pasco
## 2601 2037 1811 1856
## Piura Puno San Martín Tacna
## 2884 2232 3057 1764
## Tumbes Ucayali <NA>
## 1776 2104 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>
## 28254 12581 21389 0
ÁREA DE DEL DOMICILIO 1, EL INDICADOR SOLO CONTEMPLA AREA URBANA table(enapres$AREA)
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>
## 4870 9805 14270 17388 15891 0
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
## 10241 51906 47 8
## <NA>
## 22
#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>
## 60423 1801 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
## 2013
## Blanco
## 3591
## Mestizo
## 31404
## Nativo o indigena de la Amazonia
## 391
## Negro/moreno/zambo/mulato/pueblo afroperuano \no afrodescendiente
## 5746
## Otro
## 6306
## Perteneciente o parte de otro pueblo indigena u originario
## 33
## Quechua
## 12718
## <NA>
## 22
La denominación estandarizada responde a que es un cálculo que es ejecutado por organismos internacionales. Además que es menos sesgada. Sin embargo, hay que tener en cuenta que para el 2022 la forma de la pregunta cambia. 2021 (P611A): Cuando usted camina de noche en su zona o barri ¿se siente: 1) Muy inseguro 2) Inseguro 3) Seguro 4) Muy seguro 2022: (P611B_1): ¿Qué tan seguro/a se siente caminando solo/a en su zona o barrio de noche: 1) Muy inseguro 2) Inseguro 3) Seguro 4) Muy seguro. Que es una subpregunta de la P611B: En su zona o Barrio ¿Se siente… 1) Muy inseguro 2) Inseguro 3) Seguro 4) Muy seguro. Aplica solo para los que respondieron opción 3 y 4.
#2021
#enapres <- enapres %>% mutate (percepcionEst = ifelse(is.na(P611A),0,ifelse(P611A == 1 | P611A == 2,1,0)))
#table(enapres$percepcionEst, useNA = "alw")
#2022
enapres <- enapres %>% mutate (percepcionEst = ifelse(is.na(P611B_1),0,ifelse(P611B_1 == 1 | P611B_1 == 2,1,0)))
table(enapres$percepcionEst2, useNA = "alw")## Warning: Unknown or uninitialised column: `percepcionEst2`.
##
## <NA>
## 0
enapres <- enapres %>% mutate(juventud = ifelse(P208_A>=15 & P208_A<=29,"jovenes","otrasedades"))
table(enapres$juventud, useNA = "alw")##
## jovenes otrasedades <NA>
## 19555 42669 0
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.x, strata=~CCDD.x,
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(~percepcionEst, ~juventud, encuesta, svymean, deff=F, na.rm=T)
ic0 <- confint(tabla0)
cv0 <- matrix(cv(tabla0), nrow = length(cv(tabla0)), ncol = 1, dimnames = list(names(cv(tabla0)), "Coef. Var."))
datos0<-bind_cols(tabla0, cv0, ic0)
datos0tabla1 <- svyby(~percepcionEst, ~juventud+sexo, encuesta, svymean, deff=F, na.rm=T)
ic1 <- confint(tabla1)
cv1 <- matrix(cv(tabla1), nrow = length(cv(tabla1)), ncol = 1, dimnames = list(names(cv(tabla1)), "Coef. Var."))
datos1<-bind_cols(tabla1, cv1, ic1)
datos1tabla3 <- svyby(~percepcionEst, ~juventud+regnat, encuesta, svymean, deff=F, na.rm=T)
ic3 <- confint(tabla3)
cv3 <- matrix(cv(tabla3), nrow = length(cv(tabla3)), ncol = 1, dimnames = list(names(cv(tabla3)), "Coef. Var."))
datos3<-bind_cols(tabla3, cv3, ic3)
datos3tabla4 <- svyby(~percepcionEst, ~juventud+regiones2, encuesta, svymean, deff=F, na.rm=T)
ic4 <- confint(tabla4)
cv4 <- matrix(cv(tabla4), nrow = length(cv(tabla4)), ncol = 1, dimnames = list(names(cv(tabla4)), "Coef. Var."))
datos4<-bind_cols(tabla4, cv4, ic4)
datos4tabla5 <- svyby(~percepcionEst, ~juventud+pobreza3, encuesta, svymean, deff=F, na.rm=T)
ic5 <- confint(tabla5)
cv5 <- matrix(cv(tabla5), nrow = length(cv(tabla5)), ncol = 1, dimnames = list(names(cv(tabla5)), "Coef. Var."))
datos5<-bind_cols(tabla5, cv5, ic5)
datos5tabla6 <- svyby(~percepcionEst, ~juventud+discapacidad1, encuesta, svymean, deff=F, na.rm=T)
ic6 <- confint(tabla6)
cv6 <- matrix(cv(tabla6), nrow = length(cv(tabla6)), ncol = 1, dimnames = list(names(cv(tabla6)), "Coef. Var."))
datos6<-bind_cols(tabla6, cv6, ic6)
datos6tabla7 <- svyby(~percepcionEst, ~juventud+defiet2, encuesta, svymean, deff=F, na.rm=T)
ic7 <- confint(tabla7)
cv7 <- matrix(cv(tabla7), nrow = length(cv(tabla7)), ncol = 1, dimnames = list(names(cv(tabla7)), "Coef. Var."))
datos7<-bind_cols(tabla7, cv7, ic7)
datos7tabla8 <- svyby(~percepcionEst, ~juventud+lengua, encuesta, svymean, deff=F, na.rm=T)
ic8 <- confint(tabla8)
cv8 <- matrix(cv(tabla8), nrow = length(cv(tabla8)), ncol = 1, dimnames = list(names(cv(tabla8)), "Coef. Var."))
datos8<-bind_cols(tabla8, cv8, ic8)
datos8generar_archivo_excel2("DINDES-14-CRIM-02-INDA.xlsx", list(datos0, datos1, datos3, datos4, datos5, datos6, datos7, datos8))