Segunda entrega

Script para el análisis y visualización de datos

La segunda entrega consiste en la escritura del script para analizar los datos elegidos para este proyecto. El objetivo es generar el código necesario para responder las preguntas inicialmente definidas en la entrega 1, aunque es posible agregar nuevas preguntas o modificar las existentes en función de la exploración que hagan de los datos.

El script escrito debe permitir importar los datos, hacer las transformaciones necesarias para que los datos están en el formato adecuado (por ejemplo, crear nuevas variables, modificar las existentes, hacer limpieza en los datos) y responder las preguntas de análisis.

Modalidad entrega

Debe entregar la carpeta con tu proyecto de RStudio. El formato para nombrar la carpeta es proyecto_apellido-nombre. El envío se debe hacer a través de Dropbox, en un enlace que será compartido por Discord. Esta es la única modalidad de envío.

Fecha de entrega

Miércoles 09 de noviembre.

Ejemplo de una entrega

# Paquetes a utilizar ----

library(rvest) # este es el paquete que lee el html de la página
library(dplyr)
library(janitor)
library(tidyr)
library(lubridate)
library(stringr)
library(readr)

# 1. WEB SCRAPING PARA CREAR EL SET DE DATOS ----

# primer paso: traer el código html de la página del Senado

html_reuniones <- read_html("https://www.senado.cl/appsenado/index.php?mo=lobby&ac=GetReuniones")

# segundo paso: extraer del código html lo que está contenido en la etiqueta que nos interesa y unificar el nombre de las variables

reuniones <- html_reuniones %>% 
  html_elements("table") %>% 
  html_table() %>% 
  clean_names()

# tercer paso: dividir la columna fecha_duracion_lugar en tres columnas distintas

reuniones <- reuniones %>% 
  separate(col = "fecha_duracion_lugar",
           into = c("fecha", "duracion", "lugar"),
           sep = "  ",
           extra = "merge")

# cuarto paso: convertir la variable "fecha" a variable de tipo "fecha"

reuniones <- reuniones %>% 
  mutate(fecha = as_date(fecha),
         duracion = str_remove(duracion, " Min."),
         duracion = as.numeric(duracion)) %>% 
  rename(duracion_minutos = duracion)

# guardar los datos 

hoy <- today()

write_csv(reuniones, paste0(hoy, "_lobby-senado.csv"))


# 2. RESPONDER LAS PREGUNTAS 

# Importar los datos:

asesorias_diputados <- read_delim("2022-10-07_lobby-senado.csv")

# Pregunta 1: ¿Cuál es el promedio y el rango de montos que han invertido los diputados en asesorías externas en este periodo? 

# a. tabla con lo que ha invertido cada diputado, ordenada de mayor a menor
asesorias_diputados %>% 
  group_by(diputado) %>%  
  summarise(total_recibido = sum(total_contrato)) %>%  
  arrange(desc(total_recibido))                          

# b. tabla con lo que ha invertido cada diputado, ordenada de mayor a menor
asesorias_diputados %>% 
  group_by(diputado) %>%  
  summarise(total_recibido = sum(total_contrato)) %>%  
  summarise(promedio_monto_asesorias = mean(total_recibido), minimo = min(total_recibido), maximo = max(total_recibido))

# c. gráfico con la distribución de gastos

asesorias_diputados %>% 
  group_by(diputado) %>%  
  summarise(total_recibido = sum(total_contrato)) %>% 
  ggplot() + aes(total_recibido) + geom_histogram(bins = 50) + scale_x_continuous(label = scales::dollar)

# Pregunta 2: ¿Cuántos asesores distintos han realizado asesorías para la Cámara de Diputados en el período comprendido en estos datos?

asesorias_diputados %>% 
  count(asesor) %>% 
  count()


# Pregunta 3: ¿Qué asesores han trabajado con mayor cantidad de diputados en ese periodo? -> Se reformuló esta pregunta a : ¿Qué asesores han realizado más asesorías? ¿Con cuántos diputados distintos ha trabajado cada asesor?

# a. Total de asesorías por asesor
asesorias_diputados %>% 
  group_by(asesor) %>%  
  summarise(cantidad_asesorias = n()) %>% 
  arrange(desc(cantidad_asesorias)) 


# b. Cantidad de asesorías por diputado de cada asesor 

asesorias_diputados %>% 
  count(asesor, diputado) 


# b. Cantidad de diputados asesorados por cada asesor

asesorias_por_diputado %>% 
  count(asesor, sort = TRUE)


# Pregunta 4: ¿Qué asesores son los que han percibido mayores ingresos por concepto de asesorías a la Cámara de Diputados en este periodo?

# a. tabla con todos los asesores
asesorias_diputados %>% 
  group_by(asesor) %>%  
  summarise(total_recibido = sum(total_contrato)) %>%  
  arrange(desc(total_recibido)) 


# gráfico con la distribución de ingresos por asesor

asesorias_diputados %>% 
  group_by(asesor) %>%  
  summarise(total_recibido = sum(total_contrato)) %>% 
  ggplot() + aes(total_recibido) + geom_histogram(bins = 50) + scale_x_continuous(label = scales::dollar)