Tarea 1: Curso de R con orientación Geoespacial

Autor/a

Jorge de la Vega

Realizar un panel con 4 mapas usando los datos de carpetas de víctimas de la PGJ de la Ciudad de México.

library(tidyverse)
library(leaflet)
library(leaflet.extras)
library(leafsync)
library(htmltools)
library(leaflet.extras2)
library(leaflet.providers)

Voy a considerar datos de 4 años diferentes. Dado que los datos de 2024 no están completos (la fuente indica que son de enero a julio de 2024) no los voy a considerar. Tampoco uno las bases en una sola dado que los datos pueden tener diferentes campos, por cambios metodológicos.

# Cargar los datos
linkfgj23 <- "https://archivo.datos.cdmx.gob.mx/FGJ/victimas/victimasFGJ_2023.csv"
linkfgj22 <- "https://archivo.datos.cdmx.gob.mx/FGJ/victimas/victimasFGJ_2022.csv"
linkfgj21 <- "https://archivo.datos.cdmx.gob.mx/FGJ/victimas/victimasFGJ_2021.csv"
linkfgj20 <- "https://archivo.datos.cdmx.gob.mx/FGJ/victimas/victimasFGJ_2020.csv"
d23 <- read_csv(linkfgj23)
d22 <- read_csv(linkfgj22)
d21 <- read_csv(linkfgj21)
d20 <- read_csv(linkfgj20)

La siguiente estructura repite el análisis para cada uno de los años.

datos <- paste("d",20:23,sep="")
mapas <- list(NULL)
colores <- c("black","red","blue","yellow")
for (i in 1:length(datos)){
  A <- get(datos[i]) %>%
       filter(!is.na(latitud) & !is.na(longitud)) %>%
       filter(categoria_delito == "HOMICIDIO DOLOSO")
  rr <- tags$div(HTML(eval(parse(text = "paste('<p> Año',datos[i],'</p>')"))))  

  mapas[[i]] <- leaflet() %>%
  addProviderTiles(providers$OpenStreetMap) %>% # siempre va
  addCircleMarkers(data = A,
                   lng = ~longitud,
                   lat = ~latitud,
                   radius = 5,
                   color = colores[i],
                   opacity = 0.7,
                   weight = 1) %>%
  addControl(rr, position = "bottomleft")
}
sync(mapas,ncol=2)

Finalmente, se guarda el archivo en un documento html para consulta.

save_html(sync(mapas,ncol=2),"mapa_homicidios_por_año.html")