Este control tiene como finalidad evaluar el trabajo de base de datos y visualizaciones. Se evaluarÔ la correcta ejecución del código y el uso eficiente de las herramientas de codificación entregadas.
El formato de respuesta del control es el siguiente:
El formato tiene puntaje asignado en la nota. (3 puntos)
Para este control, deberĆ” usar la base de datos ENE.csv, este erchivo ya esta depurada de la Encuesta Nacional de Empleo (ENE) elaborada por el INE.
Cargue las librerias data.table, readxl, ggplot2, chilemapas,sf,sp,leaflet y las bases de datos ENE.csv con el nombre ENE y comunas.csv con el nombre comunas. Luego, una ambas bases de datos con el nombre de la comuna (5 puntos)
library(leaflet) # Mapas
library(sp)
library(sf)
## Linking to GEOS 3.8.1, GDAL 3.1.4, PROJ 6.3.1
library(chilemapas)
## Registered S3 method overwritten by 'geojsonlint':
## method from
## print.location dplyr
library(ggplot2)
library(data.table)
library(readxl)
rm(list=ls())
ENE <- fread("/Users/magdalena/Dropbox/ds4eyn/2021/Magdalena/Controles/ENE.csv")
comunas <- fread("/Users/magdalena/Dropbox/ds4eyn/2021/Magdalena/Controles/Comunas.csv")
ENE <- merge(ENE,comunas,by.x='r_p_c', by.y='codigo_comuna')
¿CuÔntas personas fueron encuestadas y a cuÔntas personas representa esta encuesta? (3 puntos)
fact_calENE[, sum(fact_cal,na.rm=T)]
## [1] 15853046
GrafĆque el nĆŗmero de personas por región, utilice la función ggplot. (5 puntos)
ggplot(ENE,aes(region1, fact_cal)) + geom_col()
# También se acepta un geom_bar() contabilizando el número de personas encuestadas
ggplot(ENE, aes(region1)) + geom_bar()
Aguegue tĆtulo, subtĆtlo y fuente al grĆ”fico anterior, ademĆ”s arregle el eje x para que sea legible. (3 puntos)
ggplot(ENE,aes(region1, fact_cal)) +
geom_col() + labs(x='Región',y='Número de personas',title='Cantidad de habitantes', subtitle='Por región', caption= 'Fuente: Encuesta Nacional de Empleo') +
theme(axis.text.x = element_text(angle=20, vjust=0.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. (6 puntos, 2 por crear el objeto y 4 por crear la variable)
Desempleo <- ENE[region==3, sum(fact_cal,na.rm=T), by=.(region,nombre_comuna, situacion_ocupacional, r_p_c)]
Desempleo <- Desempleo[situacion_ocupacional=='OCUPADO',OCUPADO:=sum(V1),by='nombre_comuna']
Desempleo <- Desempleo[situacion_ocupacional=='CESANTE',CESANTE:=sum(V1),by='nombre_comuna']
Desempleo <- Desempleo[,T_desempleo:=(sum(CESANTE,na.rm = T)/(sum(OCUPADO,na.rm = T)+sum(CESANTE,na.rm = T))),by='nombre_comuna']
Haga un grƔfico de barras con las comunas en el eje y, y la tasa de desempleo en el eje x. (5 puntos)
ggplot(Desempleo,aes(T_desempleo, nombre_comuna)) + geom_col()
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. (16 puntos)
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
mapa <- mapa_comunas # (2 puntos)
Desempleo[, r_p_c := ifelse(r_p_c< 10000 , paste0("0",Desempleo$r_p_c), Desempleo$r_p_c)] # (2 puntos)
mapa <- merge(Desempleo,mapa_comunas,by.x="r_p_c", by.y="codigo_comuna") # (2 puntos)
mapa <- mapa[!duplicated(nombre_comuna), .(geometry, T_desempleo,nombre_comuna)]
mapa<-st_sf(mapa) # (1 punto)
bins<-seq(0,0.2,0.02) # (1 punto, no importa como hayan definido los bins)
paleta<-colorBin(palette = 'Reds',domain = mapa$T_desempleo,bins = bins) # (1 punto)
labels <- sprintf(
"<strong>Comuna: %s</strong><br/>Tasa de desempleo %g ",
mapa$nombre_comuna, mapa$T_desempleo
) %>% lapply(htmltools::HTML) # (2 puntos)
leaflet(mapa)%>% # (5 puntos)
addProviderTiles(provider = providers$OpenStreetMap.Mapnik)%>%
addPolygons(color = ~paleta(T_desempleo),
weight = 1,
fillOpacity = 0.8,
label = labels)%>%
addLegend(pal = paleta, values = ~bins, opacity = 1,position = "bottomright",title ="Tasa desempleo")
## Warning: sf layer has inconsistent datum (+proj=longlat +ellps=GRS80 +no_defs).
## Need '+proj=longlat +datum=WGS84'
## Warning in RColorBrewer::brewer.pal(max(3, n), palette): n too large, allowed maximum for palette Reds is 9
## Returning the palette you asked for with that many colors
## Warning in RColorBrewer::brewer.pal(max(3, n), palette): n too large, allowed maximum for palette Reds is 9
## Returning the palette you asked for with that many colors
## Warning in RColorBrewer::brewer.pal(max(3, n), palette): n too large, allowed maximum for palette Reds is 9
## Returning the palette you asked for with that many colors