Actividad 2 (continuación)

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

library (rgdal)

RM<-readOGR("/Users/mac/Downloads", layer="terrritorio_n")
## OGR data source with driver: ESRI Shapefile 
## Source: "/Users/mac/Downloads", layer: "terrritorio_n"
## with 32 features
## It has 3 fields
#plot(RM)

Los datos que necesitamos se encuentran en una hoja diferente del documento de excel.

library(readxl)


base_carencia_soc<- read_xlsx("/Users/mac/Downloads/Anexo_2016-2020.xlsx", sheet = "Cuadro 4B" )
## New names:
## * `` -> ...1
## * `` -> ...2
## * `` -> ...3
## * `` -> ...5
## * `` -> ...6
## * ...
## Eliminamos algunas de los primeros renglones porque no son útiles


base_carencia_soc_1<- as.data.frame( base_carencia_soc[-c(1:5),-c(1:2)])

base_carencia_soc_2<- as.data.frame( base_carencia_soc_1[-c(33:36),])

### También renombraremos las columnas para manipular la base con mayor facilidad

names(base_carencia_soc_2)[1]<- "Entidad_Federativa"
names(base_carencia_soc_2)[2]<- "C_soc_2016"
names(base_carencia_soc_2)[3]<- "C_soc_2018"
names(base_carencia_soc_2)[4]<- "C_soc_2020"


####### Previo al uso de "merge"

base_carencia_soc_2$c_ent <- 01:32

length(base_carencia_soc_2$c_ent)
## [1] 32
length(RM@data$CVE_ENT)
## [1] 32
RM@data$CVE_ENT<-as.numeric(RM@data$CVE_ENT)


joint_car_soc<-merge(x=RM@data, y=base_carencia_soc_2, by.x ="CVE_ENT", by.y= "c_ent", sort=FALSE)

RM@data$C_soc<-as.numeric(joint_car_soc$C_soc_2020)
library(leaflet)

levels(cut(RM@data$C_soc,4))
## [1] "(14.1,19.4]" "(19.4,24.7]" "(24.7,30.1]" "(30.1,35.4]"
cortes_cs <- c(0,19.4,24.7,30.1,Inf)

## generamos la paleta 

colores_cs <- colorBin( palette="Reds", domain= RM$C_soc, na.color="transparent", bins=cortes_cs)

library(htmltools)

#### le indicamos lo que queremos que nos despliegue 

textos_cs <- paste(
  "Entidad : ", RM$NOMGEO,"<br/>",
  "% Población con  al  menos  una  carencia  social: ", round(RM@data$C_soc,3),"<br/>")  %>% lapply(htmltools::HTML)


leaflet(data=RM) %>% addTiles()  %>% addPolygons(label = textos_cs, fillColor = colores_cs(RM$C_soc), color = "white",
                                                 fillOpacity = .7)