Vacunación en el Sudeste bonaerense

Este documento incluye mapas interactivos sobre el proceso de vacunacion en el sudeste bonaerense. El programa provincial de Buenos Aires, Vacunate PBA, se lleva a cabo en todo el territorio bonaerense, cómo su nombre lo sugiere, y es de nuestro interés ver cómo lo hace en nuestra región.

Para ello se seleccionaron 19 municipios que conforman éste área arbitraria, bajo distintos conceptos, como ser sedes de distintas entidades, intercambios comerciales y culturales.

##Creacion de vectores de municipios de interes 
sudeste = c("General Pueyrredon", "Tandil", "Olavarria", "Azul", "Necochea", "Pinamar", "Tres Arroyos", "Balcarce", "Mar Chiquita", "General Alvarado", "Villa Gesell", "General Juan Madariaga", "Maipu", "Ayacucho", "Rauch", "Benito Juarez", "Adolfo Gonzales Chaves", "San Cayetano", "Loberia")

Los datos del plan de vacunacion están disponibles en el sitio de datos abiertos del gobierno nacional. Éste dataset incluye una observación por cada vacuna que se aplicó en el día que se actualiza.

Seleccionamos variables de interes, buscamos y agrupamos los datos por fecha de vacunacion y orden de dosis.

#carga del dataset de vacunadxs
vacunadxs <- fread("data/datos_nomivac_covid19.csv")
#seleccion de variables de interes
vacunadxs <- vacunadxs[,.(grupo_etario, 
                          jurisdiccion = jurisdiccion_residencia, 
                          depto = depto_residencia,
                          fecha = as.Date(fecha_aplicacion),
                          vacuna,
                          condicion_aplicacion,
                          orden_dosis)]

#agrupamiento por depto, fecha y dosis
vacunadxs <- vacunadxs[,
                       .(aplicaciones = .N),
                       by = .(jurisdiccion, depto, fecha, orden_dosis)]


indices <- (vacunadxs$depto %in% sudeste2) & (vacunadxs$jurisdiccion == "Buenos Aires")
vacunadxs_sur <- vacunadxs[indices, ]
vacunadxs_por_depto <- list()

for (depto_s_til in sudeste) {
  vacunadxs_sur[depto==sudeste2[depto_s_til], c("depto")] <- depto_s_til
  vacunadxs_por_depto[[depto_s_til]] <- vacunadxs_sur[depto==depto_s_til]
  vacunadxs_por_depto[[depto_s_til]] <- vacunadxs_por_depto[[depto_s_til]] %>%
    spread(key = orden_dosis, value = aplicaciones, fill = 0) %>%
    full_join(date_df, by = "fecha") %>%
    rename(c(primera_dosis = "1", segunda_dosis = "2")) %>%
    replace_na(list(depto = depto_s_til, primera_dosis = 0, segunda_dosis = 0))
  pob_depto <- poblacion_sud[poblacion_sud$depto==sudeste3[depto_s_til], ]$pob
  vacunadxs_por_depto[[depto_s_til]] <- vacunadxs_por_depto[[depto_s_til]]  %>% 
    arrange(fecha) %>%
    mutate(prim_d_media_movil = rollmean(primera_dosis, k = 7, fill = 0, align = "right"),
           prim_d_acumulado = cumsum(primera_dosis),
           prim_d_acumulado_porc = prim_d_acumulado*100/pob_depto,
           seg_d_acumulado = cumsum(segunda_dosis),
           seg_d_acumulado_porc = seg_d_acumulado*100/pob_depto)
}


vacunadxs_sur <- rbindlist(vacunadxs_por_depto, use.names = TRUE)

En este caso nos vamos a quedar con el útlimo registro de cada municipio, obteniendo un dataframe que por cada municipio nos de el acumulado porcentual de primera y de segundas dosis.

Esto cuando vengan las vacunas e Johnson & Johnson y de Cansino que son de una sola dosis, y la cubana Abdala que puede requerir 3 dosis, va a haber que reformularlo para ver la gente parcialmente vacunada y la completamente vacunada.

Ahora se carga el shapefile de los departamentos para obtener las figura para el mapa. Este archivo fue descargado del Instituto Geografico Nacional.

## carga del shapefile de departamentos obtenidos de datos.argentina.gob.ar
departamentos <- readOGR(dsn = "./data", layer = "departamento")
## OGR data source with driver: ESRI Shapefile 
## Source: "C:\Users\Joaco\Documents\R\CovidArgentina\CovidArgentina\data", layer: "departamento"
## with 529 features
## It has 8 fields
#filtrado del shapefile
departamentos <- departamentos[departamentos@data$fna %in% sudeste4, ]



#correcion de los valores rotos en el shpafile
for (depto_s_t in sudeste) {
  departamentos@data <- departamentos@data %>%
    mutate(nam = replace(nam, nam == sudeste2[depto_s_t], depto_s_t))
}

#agregado de variables de interes en el df del shapefile
departamentos@data <- departamentos@data %>%
  inner_join(vacunadxs_select, by = c("nam" = "depto"))

Con este dataframe podemos seleccionar varias variables de interés como fallecimientos por 100k habitantes o casos confirmados propiorcionalmente, hoy elegimos mostrar los porcentajes de personas parcial y completamente vacunada.

##proceso para vacunadxs con 1ra dosis

bins <- seq(15,50,5)
qpal <- colorBin("Reds", departamentos@data$prim_d_acumulado_porc, bins = bins)

labels <- sprintf("<strong>%s</strong>",  
                  paste(departamentos@data$nam, 
                        ": ", 
                        as.character(format(departamentos@data$prim_d_acumulado_porc, digits = 2, nsmall = 2)),
                        sep = "")) %>% 
      lapply(htmltools::HTML)


leaflet(departamentos) %>%
  addPolygons(stroke = TRUE,
              opacity = 1,
              fillOpacity = 0.5, 
              smoothFactor = 0.5,
              color="black",
              weight = 1,
              fillColor = ~qpal(departamentos@data$prim_d_acumulado_porc),
              label = labels,
              labelOptions = labelOptions(
                style = list("font-weight" = "normal", padding = "3px 8px"),
                textsize = "15px",
                direction = "auto")) %>%
  addLegend(values = ~departamentos@data$prim_d_acumulado_porc,
            pal = qpal,
            title = "% de vacunas con 1ra dosis")
bins <- seq(4,20,4)
qpal <- colorBin("Reds", departamentos@data$seg_d_acumulado_porc, bins = bins)

labels <- sprintf("<strong>%s</strong>",  
                  paste(departamentos@data$nam, 
                        ": ", 
                        as.character(format(departamentos@data$seg_d_acumulado_porc, digits = 2, nsmall = 2)),
                        sep = "")) %>% 
  lapply(htmltools::HTML)

leaflet(departamentos) %>%
  addPolygons(stroke = TRUE,
              opacity = 1,
              fillOpacity = 0.5, 
              smoothFactor = 0.5,
              color="black",
              weight = 1,
              fillColor = ~qpal(departamentos@data$seg_d_acumulado_porc),
              label = labels,
              labelOptions = labelOptions(
                style = list("font-weight" = "normal", padding = "3px 8px"),
                textsize = "15px",
                direction = "auto")) %>%
  addLegend(values = ~departamentos@data$seg_d_acumulado_porc,
            pal = qpal,
            title = "% de vacunas con 2da dosis")

Mis agradecimientos a Gustavo Illescas y a Arturo Mora-Soto