Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### ###
- # Salario mínimo ajustado por IPC #
- ### ###
- library(rvest)
- library(tidyverse)
- library(fpp3)
- library(readxl)
- # Se lee los datos del IPC desde el INE.
- ipc <- read_csv2("https://www.ine.gob.cl/docs/default-source/%C3%ADndice-de-precios-al-consumidor/cuadros-estadisticos/series-empalmadas-y-antecedentes-historicos/series-empalmadas-diciembre-2009-a-la-fecha/serie-hist%C3%B3rica-empalmada-ipc-diciembre-2009-a-la-fecha-csv.csv",
- locale=locale(decimal_mark = ",", grouping_mark = ".", encoding="latin1"))
- # Pequeños arreglos a los datos:
- # - Se transforma la fecha en tipo Date.
- # - Se selecciona sólo las columnas relevantes.
- ipc <- ipc %>%
- mutate(Fecha = paste(`Año`, sprintf("%02.0f", Mes), "01", sep = "-") |> as.Date()) %>%
- select(Fecha, `Índice`)
- # Cargamos los datos del salario mínimo desde wikipedia.
- salario_minimo <- read_html("https://es.wikipedia.org/wiki/Anexo:Salario_m%C3%ADnimo_en_Chile") %>%
- # Seleccionamos el tercer elemento tabla en la página web.
- html_elements("table") %>%
- .[3] %>%
- # rescatamos los datos de la tabla.
- html_table() %>%
- .[[1]] %>%
- # Seleccionamos las variables que nos interesan.
- select(Fecha, `Monto bruto`) %>%
- # Filtramos los encabezados.
- filter(!Fecha == `Monto bruto`) %>%
- # Transformamos las fechas en tipo Date. Sólo funciona en idioma español.
- mutate(Fecha = str_replace_all(Fecha, "del", "de") |>
- as.Date(Fecha, format="%d de %b de %Y")) %>%
- # Filtramos las fechas que no vamos a encontrar en el INE
- filter(Fecha >= "2009-01-01") %>%
- # Transformamos el monto en numérico
- mutate(`Monto bruto` = str_replace_all(`Monto bruto`, "([0-9]*)([.])([0-9]*).*", "\\1\\3") |> as.numeric()) %>%
- add_row(Fecha=as.Date("2024-12-01"), `Monto bruto`=510500)
- # Etiquetas para los nombres de presidentes.
- presidentes <- data.frame(
- x = as.Date(c("2012-01-01", "2016-01-01", "2020-01-01", "2024-01-01")),
- y = c(450000, 450000, 325000, 325000),
- label = c("S. Piñera I", "M. Bachelet II",
- "S. Piñera II", "G. Boric")
- )
- # Se unen las bases del IPC y el salario mínimo
- ipc %>%
- left_join(salario_minimo) %>%
- # Se agrega el dato que queda fuera debido al filtro.
- (\(x) {
- x$`Monto bruto`[1] <- 159000
- x
- }) %>%
- # Se rellena los espacios en blanco.
- fill(`Monto bruto`) %>%
- # Creamos el ajuste por IPC.
- mutate(Factor = `Índice`[n()]/`Índice`,
- `Monto ajustado` = `Monto bruto`*Factor,
- Fecha = yearmonth(Fecha)) %>%
- as_tsibble(index = Fecha) %>%
- model(stl=STL(`Monto ajustado`)) %>%
- components() %>%
- as_tsibble() %>%
- autoplot(`Monto ajustado`) +
- geom_label(data = presidentes, aes(x=x, y=y, label = label)) +
- geom_line(aes(y=trend), colour = "blue") +
- geom_vline(
- xintercept=as.Date(c("2010-03-01", "2014-03-01", "2018-03-01", "2022-03-01")),
- linetype='dashed', color='red') +
- labs(
- title = "Salario mínimo real en Chile",
- subtitle = "Salario mínimo ajustado por IPC",
- caption = "Fuentes: Ine y Wikipedia",
- x = "Fecha",
- y = "Salario mínimo"
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement