Centro de Investigación y Docencia Económicas (CIDE)Región Centro

Manejo de Bases de Datos y Programación
Actividad 4 - Ejercicio 2 - Parte 2
Profesor: Dr. Héctor de la Torre Gutiérrez

Alumno: Erick Gabriel Fajardo Martínez

6 de Diciembre de 2021

EJERCICIO 2 - Parte 2

Utilizando la información más reciente sobre de la medición multidimensional de la pobreza realizada por el CONEVAL a nivel estatal (2020), obtener:

# Librerías
library(dplyr)
library(stringr)
library(rgdal)
library(leaflet)

# Pobreza 2020 Coneval ----
pobreza_2020_nacional <- readr::read_csv(here::here("data/class/pobreza_20.csv"), 
                                         col_select = c("ent", "pobreza", "carencias", "ic_rezedu", "plp"))

# Se calculan los porcentajes
pobreza_2020_nacional <- pobreza_2020_nacional %>%
  filter(!is.na(pobreza)) %>%
  mutate(ent = str_replace_all(str_pad(ent, 2, "left"), "\\s", "0")) %>%
  group_by(ent) %>%
  summarise(poblacion = n(),
            prop_pob_pobre = round(sum(pobreza == 1)/poblacion, 4)*100,
            prop_pob_carencias = round(sum(carencias == 1)/poblacion, 4)*100,
            prop_pob_rezagoEdu = round(sum(ic_rezedu == 1)/poblacion, 4)*100,
            prop_pob_ingresoInf = round(sum(plp == 1)/poblacion, 4)*100)


# Mapa ----
nacional_mapa <- readOGR(dsn = here::here("./maps/nacional_qgis"), layer = "nacional", encoding = "UTF-8")
## OGR data source with driver: ESRI Shapefile 
## Source: "C:\Users\Erick\Documents\projects\programacion\maps\nacional_qgis", layer: "nacional"
## with 32 features
## It has 3 fields
# Merge ----
nacional_mapa@data <- merge(x = nacional_mapa@data,
                            y = pobreza_2020_nacional,
                            by.x = "CVE_ENT",
                            by.y = "ent",
                            sort = FALSE)

# Info popups ----
### Información para los popups ----
nacional_mapa@data <- nacional_mapa@data %>%
  mutate(popup_info_pobreza= paste0(sep = "",
                             "<br> <b>Estado: </b>", NOMGEO,
                             "<br> <b>Porcentaje de pobreza en 2020: </b>", paste0(prop_pob_pobre, "%")), 
         popup_info_carencias = paste0(sep = "",
                             "<br> <b>Estado: </b>", NOMGEO,
                             "<br> <b>Porcentaje población que cuenta con al menos una carencia: </b>", paste0(prop_pob_carencias, "%")),
         popup_info_rezagoEdu = paste0(sep = "",
                             "<br> <b>Estado: </b>", NOMGEO,
                             "<br> <b>Porcentaje de población con rezago educativo: </b>", paste0(prop_pob_rezagoEdu, "%")),
         popup_info_ingreso = paste0(sep = "",
                             "<br> <b>Municipio: </b>", NOMGEO,
                             "<br> <b>Porcentaje de población con ingreso inferior a la línea de pobreza por ingresos: </b>", paste0(prop_pob_ingresoInf, "%"))
         )

7. (10%) Considerando la división (cut) por cuantiles, representar en un mapa el porcentaje de población con al menos una carencia social.

cut_values <- function(vector, breaks = 5){
  na.omit(
    unique(
      as.numeric(
        unlist(
          str_extract_all(
            levels(
              cut(vector, 5) # función cut
              ), 
            "[0-9]*\\.?\\d*")
          )
        )
      )
    )
}

cortes <- cut_values(nacional_mapa$prop_pob_carencias)
colores <- colorBin(palette = "Greens", 
                     domain = as.numeric(nacional_mapa$prop_pob_carencias), 
                     na.color = "transparent", 
                     bins = cortes
)

leaflet(nacional_mapa) %>%
  addTiles() %>%
  addPolygons(label = nacional_mapa$NOMGEO,
              popup = nacional_mapa$popup_info_carencias,
              fillColor = colores(nacional_mapa$prop_pob_carencias),
              fillOpacity = 0.9)