rm(list=ls())

Librerias

library(data.table)
library(tidyverse)
library(leaflet) # Mapas
library(sp)
library(broom)
library(janitor) #Paquete para limpiar datos
library(rgbif) #Datos para ejemplo de mapas
library(sf) #Geografia
library(chilemapas) #Geografía de Chile
library(RColorBrewer)
library(classInt)
library(plotly)
library(ggplot2)

###P Pregunta 1

mapa<- mapa_zonas
mapa <- data.table(mapa_zonas)
class(mapa)
## [1] "data.table" "data.frame"
mapa<- mapa_zonas %>% 
  filter(codigo_region==13, codigo_provincia==131)

censo<- censo_2017_zonas
censo<- data.table(censo)
class(censo)
## [1] "data.table" "data.frame"
mapa <- merge(censo,mapa, by.x="geocodigo", by.y="geocodigo")

###P Pregunta 2

codigos_territoriales <- data.table(codigos_territoriales)
codigosterritorio<- codigos_territoriales
class(codigos_territoriales)
## [1] "data.table" "data.frame"
mapa1 <- merge(mapa,codigosterritorio,by.x="codigo_comuna",by.y="codigo_comuna",all.x=T)

cantidades <- mapa1[,sum(poblacion),by=c("edad","nombre_comuna")] %>%
  filter(edad=="0 a 5")

#Respuesta: Maipu tiene una mayor poblacion de edad de 0 a 5.

###P Pregunta 3

mapa2 <- mapa1[,geometry:=NULL]
mapa2 <- mapa2[,sum(poblacion), by="edad"]


ggplot(mapa2, aes(x=edad, y=V1)) + geom_bar(stat='identity')

###P Pregunta 4

ggplot(mapa, aes(x=poblacion))+geom_histogram(color="red")+facet_wrap(~edad,ncol = 1) + labs()

###P Pregunta 5

mapa <- mapa %>%
  filter(edad=="0 a 5")

Intervalos <-  classIntervals(mapa$poblacion, style = "pretty",n=6)
mapa$pretty <-  cut(mapa$poblacion,breaks = Intervalos$brks, include.lowest = T)

ggplot() +
  geom_sf(mapa,mapping=aes(geometry=geometry, fill=pretty))+
  coord_sf(xlim = c(-71.8,-70), ylim = c(-34,-32))

###P Pregunta 6

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

labels <- sprintf(
  "<strong>Comuna: %s</strong><br/>poblacion %g ",
  mapa$codigo_comuna, mapa$poblacion
) %>% lapply(htmltools::HTML)


leaflet(mapa)%>% 
  addProviderTiles(provider = providers$OpenStreetMap.Mapnik)%>%
  addPolygons(color = ~paleta(poblacion),
              weight = 1, 
              fillOpacity = 0.8,
              label = labels)%>%
  addLegend(pal = paleta, values = ~bins, opacity = 1,position = "bottomright")%>%
  setView(lng=-70.5,lat =-33.600, zoom = 8)