Limpie el entorno

rm(list = ls())

Cargue los paquetes

library(data.table)
library(chilemapas)
## Warning: package 'chilemapas' was built under R version 4.1.1
## Loading required package: sf
## Warning: package 'sf' was built under R version 4.1.1
## Linking to GEOS 3.9.1, GDAL 3.2.1, PROJ 7.2.1
## Registered S3 method overwritten by 'geojsonlint':
##   method         from 
##   print.location dplyr
library(ggplot2)
library(classInt)
## Warning: package 'classInt' was built under R version 4.1.1
library(sf)
library(leaflet)
## Warning: package 'leaflet' was built under R version 4.1.1

Preguntas

01 - Enunciado:

  • Cargue la base “mapa_zonas”, la cual proviene del paquete chilemapas. Transformelo a data.table, guarde este objeto como “mapa” y filtre sus filas para quedarse con la region “13” (character) y provincia “131” (character).

  • Cargue también la base “censo_2017_zonas” (también de chilemapas), transformela a data.table y guardela como censo.

  • Por último, haga un merge entre ambas bases, de forma que solo queden aquellas observaciones de la región “13” y provincia “131”.

mapa<- data.table(mapa_zonas)
mapa$codigo_region <- as.numeric(mapa$codigo_region)
mapa$codigo_provincia <- as.numeric(mapa$codigo_provincia)
mapa <- mapa[codigo_region == 13 & codigo_provincia == 131]

censo <- data.table(censo_2017_zonas)

mapa<- merge(mapa, censo, by.x = "geocodigo", by.y = "geocodigo")

02 - Realice un gráfico de barras que muestre el número de personas por tramo de edad (“edad”). Para esto, cree un nuevo objeto llamado mapa2 (ya en el chuck), elimine la columna “geometry” y después proceda a sumar personas por tramo de edad.

mapa2 <- copy(mapa)
mapa2$geometry <- NULL
ggplot(mapa2,aes(x = edad, y = poblacion)) + geom_col()

03 - Volviendo a la base “mapa”, haga un gráfico de densidad del número de personas. Haga un color y facet_wrap por tramo de edad. Libere el eje X e Y en el facet.

ggplot(mapa,aes(poblacion, group=edad, color=edad)) +
  geom_density()+ facet_wrap(~edad)

04 - Filtre la base “mapa” para quedarse con aquellas filas que cumplen que edad == ‘0 a 5’. Luego utilice la función de classIntervals para crear 6 intervalos de la población. Utilice el style visto en clases (style = ‘pretty’). Por último, haga un mapa de ggplot2 con el fill de la variable categórica creada (la de los intervalos).

mapa<- mapa[edad == "0 a 5"]
breaks_pretty <-  classIntervals(mapa$poblacion, style = "pretty",n=6)
ggplot(mapa, aes(geometry=geometry, fill= edad))+ geom_sf()
## old-style crs object detected; please recreate object with a recent sf::st_crs()

05 - Repita el gráfico anterior pero con el paquete de leaflet. Se incluyen los bins y paleta, pero usted debe crear los labels y el mapa. No se olvide de transformar la base a spatial.frame y incluir el zoom a Santiago.

  bins <- seq(min(mapa$poblacion),max(mapa$poblacion),200) 
paleta <- colorBin(palette = 'Reds',domain = mapa$poblacion,bins = bins)