P1

Cargue las librerias data.table, ggplot2, leaflet, sf y chilemapas. Además cargue la bases de datos de egresos y establecimientos, a estos objetos llamelos egresos y establecimientos respectivamente

library(data.table)
library(ggplot2)
library(leaflet)
library(sf)
library(chilemapas)
library(janitor)
library(tidyr)
library(dplyr)
library(plotly)
library(RColorBrewer)
library(tidyverse)
path <- 'C:/Users/Usuario/Documents/Universidad/Data Science/'
egresos <- readRDS(paste0(path,'egresos.RDS' ))
egresos <- data.table(egresos)
class(egresos)
## [1] "data.table" "data.frame"
establecimientos <- fread("C:/Users/Usuario/Documents/Universidad/Data Science/Establecimientos.csv")

P2

Visualice la distribución de las edades que egresan de la base de datos.

ggplot(egresos, aes(EDAD)) + geom_bar()

P3

Realice un merge entre el objeto egresos y establecimientos, la variable del objeto egresos es ESTAB y de establecimientos es Código Vigente

establecimientos <- clean_names(establecimientos)
Merge_Egresos <- merge(x=egresos, y=establecimientos, by.x="ESTAB", by.y="codigo_vigente")

P4

Cree un nuevo objeto que contenga la información de los establecimientos como el nombre, longitud, latitud, nombre de la comuna y la comuna.

map_estab <- Merge_Egresos[,.(nombre_oficial,longitud_grados_decimales,latitud_grados_decimales, nombre_comuna, COMUNA)]
clean_map <- map_estab[!duplicated(nombre_oficial)]
clean_map[,.N, by=nombre_oficial]

P5

Realice un mapa con leaflet que marque los puntos de los establecimientos hospitalarios.

Recuerde que en este caso al marcar puntos y no tener una geometria de poligonos no es necesario que el objeto sea sf.

Bonus: muestre un pop up, el texto que aparezca el nombre del establecimiento y la comuna.

Primero, cambiamos el nombre de las columnas longitud y latitud, para que leaflet pueda ser capaz de inferirlas.

clean_map <- rename(clean_map, lng=longitud_grados_decimales, lat=latitud_grados_decimales)

Ahora, creamos el mapa

leaflet(clean_map)%>% 
      addTiles()%>% 
      addMarkers(data=clean_map, lat=~lat, lng=~lng,  , popup = paste0(
                 "<b>Nombre Establecimiento: </b>"
                 , clean_map[, nombre_oficial]
                 , "<br>"
                 , "<b>Comuna: </b>"
                 , clean_map[, nombre_comuna]))

P6

Haga un objeto que sea la suma de los establecimientos por región y realice un merge con la generación de regiones

Creamos el objeto establecimientos_por_region

establecimientos$v1 <- NULL
establecimientos_por_region <- establecimientos[,.N, by=codigo_region]

Ahora realizamos el merge con la generacion de regiones

establecimientos_por_region <- rename(establecimientos_por_region, codigo_region=codigo_region)
generar_regiones <- setDT(generar_regiones())
generar_regiones[,codigo_region:= as.numeric(str_extract(codigo_region, pattern = "[:digit:]+"))]
establecimientos_por_region <- merge(establecimientos_por_region,generar_regiones, by= "codigo_region")

P7

Realice un choroplet (un mapa de polígonos) que muestre el total de establecimientos por región. Debe de agregar una paleta de colores. BONUS: Agregue labels al mapa.

Primero se agregan los nombres de las regiones para poder agregarlas como labels mas tarde Luego se crea el mapa utilizando el nuevo objeto chile_map

establecimientos_por_region<-cbind(establecimientos_por_region,nombre_region=c("Tarapaca", "Antofagasta", "Atacama", "Coquimbo", "Valparaiso", "O´Higgins", "Maule","Bio Bio", "Araucania", "Los Lagos", "Aysen","Magallanes", "RM","Los Rios","Arica y Parinacota","Ñuble"))
                                                                                  
chile_map<- ggplot(establecimientos_por_region) + 
  geom_sf(aes(fill = codigo_region, geometry=geometry), show.legend = FALSE) + 
  coord_sf(xlim = c(-77, -65), ylim = c(-56, -19)) + 
  scale_fill_viridis_c(name="Establecimientos") +
  geom_sf_label(aes(geometry=geometry,label = nombre_region), label.padding = unit(0.1, "mm"))
chile_map