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/Trabajo/Desktop/RDATA" La base de identidad 2020 la variable discapacidad tiene la denominación ‘p300_6_1’ para el 2022 ‘p300y_1’ p300c en 2020 en p300z en 2022
#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-ciudadana-785-Modulo1731\\CAP_600_URBANO_7.sav")
identidad2022<- read_spss("C:\\Users\\DINDES08\\Desktop\\ENAPRES\\2022\\identidad-discapacidad-785-Modulo1729\\CAP_300_URBANO_RURAL_5.sav")
table(identidad2022$P300_6_1)## < table of extent 0 >
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
table(enapres$P300Z)##
## 1 2 3 4 5 8 9 10 11 12 13 14
## 8688 1372 30 33 67 8 43 51906 27 20 4 4
str(enapres$P300Z)## dbl+lbl [1:62224] 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, ...
## @ label : chr "¿CUÁL ES EL IDIOMA O LENGUA MATERNA QUE APRENDIÓ HABLAR EN SU NIÑEZ?"
## @ format.spss : chr "F11.0"
## @ display_width: int 11
## @ labels : Named num [1:14] 1 2 3 4 5 6 7 8 9 10 ...
## ..- attr(*, "names")= chr [1:14] " Quechua?" " Aimara?" " Ashaninka?" " Awajún - Aguaruna?" ...
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
table(enapres$P319)##
## 1 2 3 4 5 6 7 8
## 12718 2013 391 33 5746 3591 31404 6306
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
enapres <- enapres %>%
mutate(atentado = ifelse(P601_1 == 1 | P601_2 == 1 | P601_3A == 1 | P601_3B == 1 | P601_4A == 1 | P601_4B == 1 | P601_5A == 1 |
P601_5B == 1 | P601_6A == 1 | P601_6B == 1 | P601_7 == 1 | P601_8 == 1 | P601_9 == 1 | P601_10 == 1 |
P601_11 == 1 | P601_12 == 1 | P601_13 == 1 | P601_14 == 1 | P601_15 == 1, 1, 0))
table(enapres$atentado, useNA = "alw")##
## 0 1 <NA>
## 49316 12908 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(~atentado, ~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(~atentado, ~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(~atentado, ~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(~atentado, ~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(~atentado, ~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(~atentado, ~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(~atentado, ~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(~atentado, ~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-13-CRIM-01-PNJ.xlsx", list(datos0,datos4))