Relación con la localización de las escuelas y los accidentes viales

Primero, leeré los datos de la localización de las escuelas y la localización de los accidentes viales (según el INEGI)

library(leaflet)
library(sf)
library(sp)
library(dplyr)
mapa_escuelas<-read_sf("C:\\Users\\Hector\\Downloads\\mg_2023_integrado\\conjunto_de_datos\\escuelas2.shp")
mapa_accidentes<-read_sf("C:\\Users\\Hector\\Downloads\\Accidentes\\INEGI_Accidentesdetransito_.shp")
#Checar las proyecciones de ambos datos
#st_crs(mapa_escuelas)
#st_crs(mapa_accidentes)

#Cambiar la proyección a aquella donde se pueda medir en metros
escuelas <- st_transform(mapa_escuelas, 32613)
accidentes <- st_transform(mapa_accidentes, 32613)

Hacer el buffer de dos kilómetros

escuelas_buffer <- st_buffer(escuelas, dist = 2000)

Identificar accidentes dentro de los buffers

accidentes_en_buffers <- st_join(accidentes, escuelas_buffer, join = st_within)

Asignar el número de accidentes a cada escuela (en archivo espacial)

conteo_accidentes <- accidentes_en_buffers %>%
  group_by(`Nombre d_1`) %>%  # Usa un identificador único de cada escuela
  summarise(num_accidentes = n())
#print(conteo_accidentes)
transforma<-as.data.frame(conteo_accidentes[,c("Nombre d_1","num_accidentes")])[,1:2]
colnames(transforma)<-c("Nombre_d1","num_accidentes")

# Unir los conteos a las escuelas
escuelas_con_accidentes <-  sp::merge(escuelas,transforma,by.x = "Nombre d_1",by.y= "Nombre_d1")   

Regresar la proyección a CRS84 para poder plasmarla en el mapa

escuelas_con_accidentes2<-escuelas_con_accidentes
escuelas_accidentes2 <- st_transform(escuelas_con_accidentes2, "OGC:CRS84")
# Crear el mapa interactivo
mapa <- leaflet(escuelas_accidentes2) %>%
  addTiles() %>%  # Agregar el fondo del mapa
  addCircleMarkers(
    lng = ~st_coordinates(geometry)[, 1],  # Longitud
    lat = ~st_coordinates(geometry)[, 2],  # Latitud
    radius = 5,  # Tamaño del marcador
    color = "blue",  # Color del borde
    fillColor = "lightblue",  # Color de relleno
    fillOpacity = 0.7,
    popup = ~paste0(
      "<b>Nombre de la escuela:</b> ", `Nombre d_1`, "<br>",
      "<b>Total de accidentes:</b> ", num_accidentes
    )  # Etiqueta emergente con detalles
  ) %>%
  addLegend(
    position = "bottomright",
    colors = "blue",
    labels = "Escuelas",
    title = "Leyenda"
  )

# Mostrar el mapa
mapa