rm(list = ls())

Pregunta 1

Cargue las librerias data.table, readxl, ggplot2, chilemapas,sf,sp,leaflet. Cargue, además la base de datos ENE.csv con el nombre ENE y la base de comunas.xls con el nombre comunas el este debe tener la clase de data.table y realice un merge con estas dos bases, ENE la variable es r_c_p .

library(data.table) 
library(readxl)
library(ggplot2)
library(sf)  
library(chilemapas)
library(leaflet)   
library(sp)

# Librerias útiles para hacer los bonus
library(janitor)  
library(plotly)  
library(RColorBrewer)  
library(tidyverse)  
library(broom)  
library(rgbif)   
library(scales)
library(stats)
comunas <- fread("C:/Users/Constanza/Documents/R Studio/Control 2 RStudio/comunas.csv", encoding = "UTF-8")
ENE <- fread("C:/Users/Constanza/Documents/R Studio/Control 2 RStudio/ENE.csv", encoding = "UTF-8")

comunas <- as.data.table(comunas)
ENE <- as.data.table(ENE)
basemerge <- merge(x=comunas, y=ENE, by.x="codigo_comuna", by.y="r_p_c")

Pregunta 2

¿Cuántas personas fueron encuestadas y a cuántas personas representa esta encuesta?
Tenga en cuenta lo que hablamos del factor de expansión en clases y ayudantía, la variable de factor expansión es fact_cal.

basemerge[,.N]
## [1] 73797
basemerge[,sum(fact_cal,na.rm=T)]
## [1] 15853046

Respuesta: 73797 personas fueron encuestadas y la encuesta representa a 15853046 personas.

Pregunta 3

Grafíque el número de personas por región, utilice la función ggplot.

regiones <- basemerge[,.(total=sum(fact_cal)), by=.(region1)]
ggplot(regiones, aes(x=region1, y=total)) + geom_col()

Pregunta 4

Aguegue título, subtítulo y fuente al gráfico anterior, además arregle el eje x para que sea legible.

ggplot(regiones, aes(x=region1, y=total)) + geom_col() + labs(x="Región", y="N°personas", title = "Número de personas", subtitle = "Por región", caption = "Fuente: ENE" ) + theme(axis.text.x = element_text(angle=90, vjust = 0,5))

Pregunta 5

Escoja una región al azar. Cree un objeto que se llame Desempleo que contenga el número de personas por situación ocupacional y comuna de la región que eligió. Cree una nueva variable que se llame Tdesempleo utilizando la siguiente fórmula:
Tdesempleo=Cesantes/(Ocupados+Cesantes)
Hint: Después de crear el objeto, cree una columna que sea la suma de ocupados por comuna, otra que sea la suma de cesantes por comuna, para después crear la tasa de desempleo que sea la suma de cesantes por comuna dividido por la suma de ocupados por comuna más la suma de cesantes por comuna.

base1 <- basemerge[region==5]
Desempleo1 <- base1[,.(nombre_comuna, codigo_comuna, situacion_ocupacional, fact_cal)]
Desempleo1 <- Desempleo1[,total_ocupacion:=sum(fact_cal), by=.(codigo_comuna,nombre_comuna, situacion_ocupacional)]

Desempleo1 <- Desempleo1[!duplicated(total_ocupacion), .(codigo_comuna, nombre_comuna, situacion_ocupacional, total_ocupacion)]

Desempleo <- reshape(Desempleo1, idvar = c("codigo_comuna","nombre_comuna"), timevar = "situacion_ocupacional" , direction = "wide")
colnames(Desempleo) <- c("codigo_comuna","nombre_comuna","INACTIVO","OCUPADO","CESANTE")

Desempleo[,Tdesempleo:=CESANTE/(OCUPADO+CESANTE)]

Pregunta 7

Haga un gráfico de barras con las comunas en el eje y, y la tasa de desempleo en el eje x.

Bonus: Agreguele título, subtítulo, fuente y color al gráfico.

ggplot(Desempleo, aes(x=nombre_comuna, y=Tdesempleo)) + geom_col() + coord_flip()

Bonus pregunta 7

ggplot(Desempleo, aes(x=nombre_comuna, y=Tdesempleo, fill=nombre_comuna)) + geom_col() + coord_flip() + labs(title ="Tasa de desempleo", subtitle ="Por comuna en la V región", caption = "Fuente: ENE", x = "Comuna",y = "Tasa desempleo") 

Pregunta 8

Cree un mapa con la tasa de desempleo comunal, utilizando el paquete chilemapas. Para esto, cree un objeto llamado mapa con el merge entre la geografía y la información de las comunas. (Con el paquete leaflet)
Hint: Después de realizar el merge, elimine los duplicados de las comunas del objeto mapa y seleccione solo las variables nombre_comuna, geometry, T_desempleo
Bonus 1: Agreguele labels al mapa.
Bonus 2: Realice el mismo mapa pero con ggplot.

comunas <- mapa_comunas
chile_comunas <- mapa_comunas %>% filter(codigo_region=="05")

Desempleo[,codigo_comuna:=ifelse(codigo_comuna < 10000 , paste0("0",Desempleo$codigo_comuna),Desempleo$codigo_comuna )] 

mapa<-merge(chile_comunas,Desempleo,by="codigo_comuna")
mapa<- as.data.table(mapa)
mapa <- mapa[,.(nombre_comuna,geometry,Tdesempleo)]

mapa<- st_sf(mapa)
pal <- colorNumeric(palette = "PuRd", domain = mapa$Tdesempleo)

mapa1 <- leaflet() %>% 
  addProviderTiles(providers$CartoDB.Positron) %>% 
  addPolygons(data = mapa,
              fillColor = ~pal(Tdesempleo),
              color = "#b2aeae",  
              fillOpacity = 1, 
              smoothFactor = 0.2,
              weight = 0.8) %>%   
  addLegend(pal = pal,
            values = mapa$Tdesempleo,
            position = "bottomright",
            title = "Tasa desempleo") %>% 
  addScaleBar(position = "topright") 
## Warning: sf layer has inconsistent datum (+proj=longlat +ellps=GRS80 +no_defs).
## Need '+proj=longlat +datum=WGS84'
mapa1

Bonus 1 pregunta 8

bins<-seq(0,0.3,0.02) 

paleta<-colorBin(palette = 'PuRd',domain = mapa$Tdesempleo,bins = bins) 

labels <- sprintf( "<strong>Comuna: %s</strong><br/>Tasa desempleo: %g ", mapa$nombre_comuna, mapa$Tdesempleo) %>% lapply(htmltools::HTML) 

leaflet(mapa)%>% 
  addProviderTiles(providers$CartoDB.Positron)%>%
  addPolygons(color = ~paleta(Tdesempleo),
              weight = 1, 
              fillOpacity = 0.8,
              label = labels)%>%
  addLegend(pal = paleta, values = ~bins, opacity = 1,position = "bottomright",title ="Tasa desempleo")