Como grupo hemos decidido trabajar con la base de datos de Avance comunal por edad en campaña de vacunación COVID-19 (Data product 81) del Ministerio de Ciencia, Tecnología, Conocimiento e Innovación con el fin de investigar sobre el avance de la vacunación en las regiones y comunas del país.Específicamente, nos enfocaremos en la base de datos de los vacunados con la primera dosis.
Primero es necesario limpiar el enviroment y cargar los paquetes necesarios para trabajar
rm(list = ls())
library(data.table)
library(ggplot2)
library(janitor)
library(plotly)
library(RColorBrewer)
library(tidyverse)
library(leaflet)
library(sp)
library(broom)
library(rgbif)
library(sf)
library(chilemapas)
library(scales)
Luego cargamos nuestra base de datos
Dosis_preliminar <- fread('https://raw.githubusercontent.com/MinCiencia/Datos-COVID19/master/output/producto81/vacunacion_comuna_edad_1eraDosis.csv', encoding = "UTF-8")
Eliminamos las comunas desconocidas
Dosis_preliminar <- Dosis_preliminar[!Comuna %like% "Desconocido",]
Además, es necesario cambiar la estructura del data frame para poder trabajar con gráficos y mapas
Edad <- names(Dosis_preliminar)
Edad <- Edad[6:71]
Primera_dosis <-melt(data = Dosis_preliminar,id.vars = c("Region","Codigo region","Comuna","Codigo comuna","Poblacion"), measure.vars = Edad, variable.name = "Edades")
colnames(Primera_dosis)<-c("Region","Codigo region","Comuna","Codigo comuna","Poblacion","Edades","Vacunados")
Como sabemos, las personas de la tercera edad son las que presentan mayores riesgos de salud frente al virus. Es por esto que en primer lugar nos interesa investigar sobre las personas de tercera edad que ya se han vacunado con la primera dosis en todo Chile. Para eso creamos un gráfico de barras que muestra la distribución por edad de la población de tercera edad ya vacunada. ¿Qué edad (dentro del rango de la tercera edad) es la que presenta menos personas vacunadas?
Terceraedad <- c("60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80")
Vacunados_Terceraedad <- Primera_dosis[Edades %in% Terceraedad]
Terceraedad1<-Vacunados_Terceraedad[,sum(Vacunados), by=.(Edades)]
ggplot(Terceraedad1, aes(x=Edades, y=V1)) + geom_col(fill="pink")+ scale_y_continuous(labels = number_format(scale = 0.001, suffix = " Mil")) +labs(x="Edad", y="Total vacunados", title="Distribución vacunados por edad",subtitle="Tercera edad", caption = "Fuente: Minciencia")
Tal como muestra el gráfico, dentro de la población vacunada de tercera edad, la edad con menos individuos vacunados corresponde a las personas de 79 años.
Luego, nos gustaría investigar sobre la distribución de vacunados por edad en la zona centro del país. ¿Cuántas personas de 21 años se han vacunado en la V región?
Primera_dosis_region<-Primera_dosis[,.(Region,Edades,Vacunados)]
Primera_dosis_region<-Primera_dosis_region[,sum(Vacunados), by=.(Region, Edades)]
ZonaCentral<-c("Valparaiso","Del Libertador General Bernardo O’Higgins","Metropolitana","Maule","Biobio","Nuble")
Vacunados_ZonaCentral<-Primera_dosis_region[Region %in% ZonaCentral]
Vacunados_centro<- ggplot(Vacunados_ZonaCentral, aes(x=Edades , y=V1,color=Region, text=paste("Región:",Region, "\n","Edad:",Edades, "\n","Personas vacunadas:",V1,"\n" ))) + geom_point() +labs(x="Edad", y="Total vacunados",title="Población vacunada Zona Central", subtitle = "Por edad", caption = "Fuente: Minciencia") + scale_y_continuous(limit=c(0, 80800)) + scale_x_discrete(breaks=seq(15,80,5))
ggplotly(Vacunados_centro, tooltip = "text")
Según el gráfico presentado, podemos concluir que en la región de Valparaíso hay 5709 personas de 21 años vacunadas.
A continuación, nos interesa generar un mapa que permita visualizar el porcentaje de vacunación en cada comuna de nuestra región. ¿Cuál son las primeras 3 comunas con mayor porcentaje de vacunación de la V región?
Primera_dosis_Quinta<-Primera_dosis[Region=="Valparaiso"]
Primera_dosis_Quinta<-Primera_dosis_Quinta[,Vacunados_comuna:=sum(Vacunados),by=.(`Codigo comuna`,Comuna, Poblacion)]
Primera_dosis_Quinta<-Primera_dosis_Quinta[,Edades:=NULL]
Primera_dosis_Quinta<-Primera_dosis_Quinta[!duplicated(Primera_dosis_Quinta$Comuna)]
Primera_dosis_Quinta<-Primera_dosis_Quinta[,Porcentaje_vac:=(Vacunados_comuna/Poblacion)]
Primera_dosis_Quinta[, `Codigo comuna` := ifelse(`Codigo comuna` < 10000 , paste0("0",Primera_dosis_Quinta$`Codigo comuna`), Primera_dosis_Quinta$`Codigo comuna`)]
Primera_dosis_Quinta[, `Codigo region` := ifelse(`Codigo region` < 10000 , paste0("0",Primera_dosis_Quinta$`Codigo region`), Primera_dosis_Quinta$`Codigo region`)]
help(package="chilemapas")
Mapa<-merge(mapa_comunas,Primera_dosis_Quinta, by.x="codigo_comuna", by.y="Codigo comuna")
Mapa<-st_sf(Mapa)
bins<-seq(0,1,0.2)
pal <- colorBin(palette = "Blues", domain = Mapa$Porcentaje_vac)
labels <- sprintf("<strong>Comuna: %s</strong><br/>Porcentaje 1°Dosis: %g ", Mapa$Comuna, Mapa$Porcentaje_vac) %>% lapply(htmltools::HTML)
Mapa1 <- leaflet() %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addPolygons(data = Mapa,
fillColor = ~pal(Porcentaje_vac),
color = "#b2aeae",
fillOpacity = 1,
smoothFactor = 0.2,
weight = 0.8,
label = labels) %>%
addLegend(pal = pal,
values = Mapa$Porcentaje_vac,
position = "bottomright",
title = "% Primera dosis")
Mapa1
Las comunas con mayor porcentaje de vacunación en nuestra región son Zapallar, El Tabo y Algarrobo.