a) Una explicación de los pasos seguidos para crear el objeto sf que une las geometrías con los atributos.

Paso 1 Llamar las siguientes librerías y correrlas:

library(tidyverse) # Manejo de bases de datos 
library(sf) # Abrir bases de datos geograficas
library(leaflet) # Visualización interactiva de mapas
library(plotly) # Visualización interactiva de gráficas

Paso 2 Ubicar bases de datos: una con atributos y otra con geometrías. Usar read_csv y st_read para leerlas y guardarlas en su objeto correspondiente.

bd <- read_csv("https://raw.githubusercontent.com/JuveCampos/miniProyectos/master/datos%20Examenes/proteccion.csv")

geom <- st_read("https://raw.githubusercontent.com/JuveCampos/Shapes_Resiliencia_CDMX_CIDE/master/geojsons/Division%20Politica/DivisionEstatal.geojson")
## Reading layer `DivisionEstatal' from data source `https://raw.githubusercontent.com/JuveCampos/Shapes_Resiliencia_CDMX_CIDE/master/geojsons/Division%20Politica/DivisionEstatal.geojson' using driver `GeoJSON'
## Simple feature collection with 32 features and 7 fields
## geometry type:  POLYGON
## dimension:      XY
## bbox:           xmin: -117.1264 ymin: 14.53401 xmax: -86.74038 ymax: 32.71877
## epsg (SRID):    4326
## proj4string:    +proj=longlat +datum=WGS84 +no_defs

Paso 3 Mergear ambas bases a través de la función "merge", bajo el siguiente chunck:

map <- merge(x = geom, y = bd,
             by.y = "Entidad", by.x = "ENTIDAD")

Poner aquí los atributos que queremos destacar de cada una de las bases, en este caso es "Entidad".

Paso 4 Guardar en un objeto el pegado de bases, en este caso "Map".

b) Un gráfico interactivo en plotly del número total de solicitudes admitidas al mecanismo de protección, por entidad.

grafico_interactivo <- map %>% 
  group_by(ENTIDAD, sol_Total) %>% 
  count()

plt <- grafico_interactivo %>% 
  ggplot(aes(x = ENTIDAD,
             y = sol_Total,
             fill = ENTIDAD,
             text = paste0("<b>Entidad: </b>", ENTIDAD, "<br>", "<b>Solicitudes admitidas: </b>", sol_Total, "<br>"))) +
  theme(legend.position = "none") +
  geom_col(color = "white") +
  coord_flip() +
  labs(title = "Periodistas admitidos en el Mecanismo", x = "", y = "")

ggplotly(tooltip = "text")  %>% 
  config(displayModeBar = F)

c) Un mapa interactivo (en leaflet) mostrando el número total de Solicitudes admitidas al mecanismo de protección.

leaflet() %>% 
  addProviderTiles(providers$CartoDB.DarkMatter) %>%
  addPolygons(data = map, color = "red", fill = NA, opacity = .1, popup = paste0("<b>Entidad: </b>", map$ENTIDAD, "<br>", "<b>Solicitudes admitidas: </b>", map$sol_Total, "<br>"))