1 Introduccion
El objetivo será calcular el índice de vulnerabilidad climática al cambio climático utilizando los siguientes indicadores:
IVHCC
haremos el ejercicio sólo para un periodo (en realidad un grupo de años que van del 2016 al 2020), la última data de la que disponemos.
1.1 % de poblacion sobre los 65 y menor a los 15 años:
Extraemos la información de la proyección de la población del INE 2002-2035.
<- read_xlsx("estimaciones-y-proyecciones-2002-2035-comunas.xlsx")
edades <- edades[,c(5,6,8,17:28)]
edades <- unique(edades$Comuna)
comunas <- tibble()
tabla3 for (i in comunas) {
<- tibble()
tabla2 for (j in 4:15) {
<- filter(edades, Comuna == i)
filtro <- filter(filtro, Edad < 15);filtro_65 <- filter(filtro, Edad > 65)
filtro_15 <- tibble(
tabla cod_com = i,
= str_replace_all(colnames(filtro[,j]),"Poblacion ",""),
año menores_15 = sum(filtro_15[,j])*100/sum(filtro[,j]),
mayores_65 = sum(filtro_65[,j])*100/sum(filtro[,j])
) <- rbind(tabla2,tabla)
tabla2
} <- rbind(tabla3,tabla2)
tabla3 }
Agregamos un cero a las cifras del codigo comunal de 4 digitos:
<- tabla3$cod_com
codigos <- seq(1:nrow(tabla3))
rango <- paste("0",codigos[rango], sep = "")
cadena <- substr(cadena,(nchar(cadena)[rango])-(4),6)
cadena <- as.data.frame(codigos)
codigos <- as.data.frame(cadena)
cadena <- cbind(tabla3,cadena)
comuna_corr <- comuna_corr[,-c(1),drop=FALSE]
comuna_corr names(comuna_corr)[4] <- "codigo"
<- comuna_corr
vulnerables
datatable(vulnerables , extensions = 'Buttons', escape = FALSE, rownames = TRUE,
options = list(dom = 'Bfrtip',
buttons = list('colvis', list(extend = 'collection',
buttons = list(
list(extend='copy'),
list(extend='excel',
filename = 'tabla'),
list(extend='pdf',
filename= 'tabla')),
text = 'Download')), scrollX = TRUE))
1.2 Porcentaje de pobreza
Para la tabla de porcentaje de pobreza se utiliza la base de datos que se construyó en un requerimiento anterior:
<- read_xlsx("pobreza2.xlsx")
pobreza <- filter(pobreza, Año == "2006")
codigos <- tibble("Código"=unique(codigos$Código))
contenedor for (i in unique(pobreza$Año)) {
<- filter(pobreza, Año == i)
los_anios
<- filter(los_anios, los_anios$Pobreza == "Pobre")
Pobre <- filter(los_anios, los_anios$Pobreza == "Pobre extremo")
Pobre_extremo <- merge(Pobre,Pobre_extremo,by="Código")
pobres_definitivos $pobres_definitivos <- pobres_definitivos$porcentaje_pobreza.x + pobres_definitivos$porcentaje_pobreza.y
pobres_definitivos<- pobres_definitivos[, -c(3,4,5,7,8,9,10,11)]
pobres_definitivos <- pobres_definitivos[, -c(2,3)]
pobres_definitivos colnames(pobres_definitivos) <- c("Código",paste0("pob_",i))
= merge(contenedor,pobres_definitivos,by="Código",all = T)
contenedor
}
<- contenedor[,-2]
tabla names(tabla)[1] <- "Código"
$pob_2010 <- NA
tabla$pob_2012 <- NA
tabla$pob_2014 <- NA
tabla$pob_2016 <- NA
tabla$pob_2018 <- NA
tabla$pob_2019 <- NA
tabla<- tabla[,c("Código","pob_2009","pob_2010","pob_2011","pob_2012","pob_2013","pob_2014","pob_2015","pob_2016","pob_2017","pob_2018","pob_2019","pob_2020")]
tabla # tabla <- tabla[,-2]
datatable(tabla, extensions = 'Buttons', escape = FALSE, rownames = TRUE,
options = list(dom = 'Bfrtip',
buttons = list('colvis', list(extend = 'collection',
buttons = list(
list(extend='copy'),
list(extend='excel',
filename = 'tabla'),
list(extend='pdf',
filename= 'tabla')),
text = 'Download')), scrollX = TRUE))
<- data.frame()
receptaculo for (n in 1:335 ) {
# calculado <- na.approx(c(tabla[n,c(2:ncol(tabla))]))
# tryCatch({
# calculado <- c(paste0(tabla[n,c(1)]),calculado)
# receptaculo <- rbind(receptaculo,calculado)
# }, error = function(msg){ })
<- na.approx(c(tabla[n,c(2:ncol(tabla))])) #<<<------------ Codigo de interpolacion
calculado <- rbind(receptaculo,calculado)
receptaculo
}colnames(receptaculo) <- c("pob_2009","pob_2010","pob_2011","pob_2012","pob_2013","pob_2014","pob_2015","pob_2016","pob_2017","pob_2018","pob_2019","pob_2020")
<- merge(tabla[,1:2],receptaculo,by="pob_2009")
receptaculo <- receptaculo[,-1];names(pobreza)[1] <- "codigo"
pobreza
datatable(pobreza, extensions = 'Buttons', escape = FALSE, rownames = TRUE,
options = list(dom = 'Bfrtip',
buttons = list('colvis', list(extend = 'collection',
buttons = list(
list(extend='copy'),
list(extend='excel',
filename = 'tabla'),
list(extend='pdf',
filename= 'tabla')),
text = 'Download')), scrollX = TRUE))
1.3 Enfermedades respiratorias
Las enfermedades respiratorias se obtuvieron del Ine para los años del 2014 al 2016 por mes
Tomamos el 2016
<- data.frame()
receptaculo for(i in unique(enf_resp_2016$comuna)){
<- filter(enf_resp_2016,enf_resp_2016$comuna == i)
enfermedades <- tibble(
tabla comuna = i,
total = sum(as.numeric(enfermedades$total)),
= unique(enfermedades$año)
año
)<- rbind(receptaculo,tabla)
receptaculo
}datatable(receptaculo, extensions = 'Buttons', escape = FALSE, rownames = TRUE,
options = list(dom = 'Bfrtip',
buttons = list('colvis', list(extend = 'collection',
buttons = list(
list(extend='copy'),
list(extend='excel',
filename = 'tabla'),
list(extend='pdf',
filename= 'tabla')),
text = 'Download')), scrollX = TRUE))
Debemos ingresar la poblacion del 2016 y agregar los codigos comunales
<- readxl::read_xlsx("poblacion2016porcomuna.xlsx") poblacion_2016
Proyecciones de Población por comuna y región 2015-2020
Fuente: INE 2015.
<- merge(receptaculo,poblacion_2016,by="comuna")
total_enfermed
$porcentaje <- total_enfermed$total*100/total_enfermed$cantidad total_enfermed
Añadimos códigos comunales
<- readxl::read_xls("codigos_comunales.xls") cod_com
## New names:
## * `` -> ...8
names(cod_com)[7] <- "comuna"
<- merge(total_enfermed,cod_com,by="comuna")
total_enfermedw <- total_enfermedw[, -c(2,4,6, 7,8,9,10,12:19)]
total_enfermedt
names(total_enfermedt)[4] <- "codigo"
datatable(total_enfermedt, extensions = 'Buttons', escape = FALSE, rownames = TRUE,
options = list(dom = 'Bfrtip',
buttons = list('colvis', list(extend = 'collection',
buttons = list(
list(extend='copy'),
list(extend='excel',
filename = 'tabla'),
list(extend='pdf',
filename= 'tabla')),
text = 'Download')), scrollX = TRUE))
1.4 IDH
Leemos el IDH
debemos agregar un cero al codigo comunal de cuatro cifras:
<- readxl::read_xlsx("idh.xlsx")
idh
<- idh$cod_com
codigos <- seq(1:nrow(idh))
rango <- paste("0",codigos[rango], sep = "")
cadena <- substr(cadena,(nchar(cadena)[rango])-(4),6)
cadena <- as.data.frame(codigos)
codigos <- as.data.frame(cadena)
cadena <- cbind(idh,cadena)
comuna_corr <- comuna_corr[,-c(1),drop=FALSE]
idh datatable(idh, extensions = 'Buttons', escape = FALSE, rownames = TRUE,
options = list(dom = 'Bfrtip',
buttons = list('colvis', list(extend = 'collection',
buttons = list(
list(extend='copy'),
list(extend='excel',
filename = 'tabla'),
list(extend='pdf',
filename= 'tabla')),
text = 'Download')), scrollX = TRUE))
names(idh)[12] <- "codigo"
<- idh[,c(12,1:11)]
idh datatable(idh, extensions = 'Buttons', escape = FALSE, rownames = TRUE,
options = list(dom = 'Bfrtip',
buttons = list('colvis', list(extend = 'collection',
buttons = list(
list(extend='copy'),
list(extend='excel',
filename = 'tabla'),
list(extend='pdf',
filename= 'tabla')),
text = 'Download')), scrollX = TRUE))
1.5 Union total
datatable(IVHCC, extensions = 'Buttons', escape = FALSE, rownames = TRUE,
options = list(dom = 'Bfrtip',
buttons = list('colvis', list(extend = 'collection',
buttons = list(
list(extend='copy'),
list(extend='excel',
filename = 'tabla'),
list(extend='pdf',
filename= 'tabla')),
text = 'Download')), scrollX = TRUE))
2 La ponderacion
\[ 0.1* menores\_15 + 0.1*mayores\_65 + 0.2 *pobres\_definitivos + 0.4* porcentaje + 0.2* HDI \]
3 IVHCC
datatable(IVHCC, extensions = 'Buttons', escape = FALSE, rownames = TRUE,
options = list(dom = 'Bfrtip',
buttons = list('colvis', list(extend = 'collection',
buttons = list(
list(extend='copy'),
list(extend='excel',
filename = 'tabla'),
list(extend='pdf',
filename= 'tabla')),
text = 'Download')), scrollX = TRUE))
<- IVHCC
IVHCC2 <- IVHCC2[!is.na(IVHCC2[,c("IVHCC")]),] IVHCC2
normalizadas
<- IVHCC
IVHCC2 <- IVHCC2[!is.na(IVHCC2[,c("IVHCC")]),]
IVHCC2 <- c("menores_15_norm","mayores_65_norm","pobreza_norm","enfermedades_norm","IDH_norm","IVHCC_norm")#<--- nombres columnas normalizadas
columnas <- c("menores_15_norm_rango","mayores_65_norm_rango","pobreza_norm_rango","enfermedades_norm_rango","IDH_norm_rango","IVHCC_norm_rango")#<--- nombres columnas rangos
columnas2 <- c("menores_15_norm_rango_cat","mayores_65_norm_rango_cat","pobreza_norm_rango_cat","enfermedades_norm_rango_cat","IDH_norm_rango_cat","IVHCC_norm_rango_cat")#<--- nombres columnas categorias
columnas3
<- c("a población - menor a 15","a población - mayor a 65","o nivel - pobreza","o porcentaje - de enfermedades","o nivel - IDH","o nivel - IVHCC")#<--- string de las categorias
categorias
for (i in 1:6) {
<- tibble()
tabla_norm for (j in seq(2010,2020,1)) {
<- filter(IVHCC2, año == j)
filtro <- min(filtro[,i+2])
minimo <- max(filtro[,i+2])
maximo
<- cbind(filtro,columnas[i]);names(filtro)[ncol(filtro)] <- filtro[1,ncol(filtro)]
filtro
ncol(filtro)] <- (filtro[,i+2]-minimo)/(maximo-minimo)
filtro[,
<- filtro
df <- max(df[,ncol(df)])
maxi <- min(df[,ncol(df)])
mini <- (maxi-mini)/5
incremento
<- mini
uno <- mini + incremento
dos <- dos + incremento
tres <- tres + incremento
cuatro <- cuatro + incremento
quinto <- quinto + incremento
sexto <- c(1, 2, 3, 4, 5)
rango <- round(uno, digits = 3)
uno <- round(dos, digits = 3)
dos <- paste(uno, "-", dos)
primer_rango <- round(dos, digits = 3)
dos <- round(tres, digits = 3)
tres <- paste(dos, "-", tres)
segundo_rango <- round(tres, digits = 3)
tres <- round(cuatro, digits = 3)
cuatro <- paste(tres, "-", cuatro)
tercer_rango <- round(cuatro, digits = 3)
cuatro <- round(quinto, digits = 3)
quinto <- paste(cuatro, "-", quinto)
cuarto_rango <- round(quinto, digits = 3)
quinto <- round(sexto, digits = 3)
sexto <- paste(quinto, "-", sexto)
quinto_rango <- c(1,2,3,4,5)
rango <- c(primer_rango, segundo_rango , tercer_rango , cuarto_rango , quinto_rango )
intervalos <- data.frame(rango, intervalos)
df2 # print(df2)
<- cbind(df,columnas2[i]);names(df)[ncol(df)] <- df[1,ncol(df)]
df
ncol(df)] <- ifelse(df[,ncol(df)-1] >= uno & df[,ncol(df)-1] < dos , 1,
df[,ifelse(df[,ncol(df)-1] >= dos & df[,ncol(df)-1] < tres , 2,
ifelse(df[,ncol(df)-1] >= tres & df[,ncol(df)-1] < cuatro , 3,
ifelse(df[,ncol(df)-1] >= cuatro & df[,ncol(df)-1] < quinto ,4,
ifelse(df[,ncol(df)-1] >= quinto ,5,"")))))
<- cbind(df,columnas3[i]);names(df)[ncol(df)] <- df[1,ncol(df)]
df
ncol(df)] <- ifelse(df[,ncol(df)-1] == 1 , paste0("muy baj",categorias[i]),
df[,ifelse(df[,ncol(df)-1] == 2 , paste0("baj",categorias[i]),
ifelse(df[,ncol(df)-1] == 3 , paste0("moderad",categorias[i]),
ifelse(df[,ncol(df)-1] == 4 , paste0("alt",categorias[i]),
ifelse(df[,ncol(df)-1] == 5 , paste0("muy alt",categorias[i]),"")))))
<- rbind(tabla_norm,df)
tabla_norm
} <- cbind(IVHCC2,tabla_norm[,c((ncol(tabla_norm)-2):ncol(tabla_norm))])
IVHCC2 }
::write_xlsx(IVHCC2, "ivhcc.xlsx") writexl