Skip to content

Instantly share code, notes, and snippets.

@paulovillarroel
Last active February 23, 2021 03:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save paulovillarroel/9f70207d8fd4793b3633d87bb1374c57 to your computer and use it in GitHub Desktop.
Save paulovillarroel/9f70207d8fd4793b3633d87bb1374c57 to your computer and use it in GitHub Desktop.
library(tidyverse)
library(readxl)
library(lubridate)
# Primero cargamos los datos del SIGGES. Para ello necesitas descargar la nómina de garantías cerradas y guardarla como
# un archivo Excel en tu computador. Guárdalo con el nombre de "cerradas" en formato xlsx.
cerradas <- read_excel("cerradas.xlsx", skip = 8)
# Ahora la limpiamos y ajustamos un poco la BD
cerradas %>% select(-2, -3, -10, -11, -15)
tail <- cerradas %>% tail(7) # Este valor revísalo. Al final del listado quedan varias filas vacias que es necesario eliminar.
cerradas <- anti_join(cerradas, tail)
cerradas <- cerradas %>% rename(
rut = Rut,
dv = DV,
nombre = Nombre,
problema_salud = `Problema de Salud`,
fecha_inicio = `Fecha de Inicio`,
fecha_limite = `Fecha Límite`,
fecha_termino = `Fecha Término`,
garantia = `Nombre de la Garantía`,
estado = Estado,
excepcion = `Causal Excepción`
)
# Creamos los nuevos campos que nos serán necesarios para calcular el índice de avance
cerradas <- cerradas %>%
mutate(fecha_inicio = ymd(fecha_inicio),
fecha_limite = ymd(fecha_limite),
fecha_termino = ymd(fecha_termino),
plazo_ges = as.numeric(fecha_limite - fecha_inicio),
dias = as.numeric(fecha_termino - fecha_inicio),
porc_plazo = round(dias * 100 / plazo_ges)
)
# Agrupamos y creamos una tabla resumen
plazos <- cerradas %>%
filter(estado != "Exceptuada") %>%
group_by(problema_salud) %>% # También podrías agrupar por las garantías y ver con más detalles cada una o por fecha y ver su evolución
summarise(count = n(),
dias = sum(dias),
plazo = sum(plazo_ges)) %>%
mutate(porc = round(dias * 100 / plazo)) %>%
ungroup()
# Guardamos la tabla
writexl::write_xlsx(plazos, "Porcentaje de avance cumplimiento GES.xlsx")
# Podemos hacer un pequeño gráfico para ver las patologías y sus índices de avance
plot <- plazos %>%
mutate(problema_salud = fct_reorder(problema_salud, porc)) %>%
ggplot(aes(problema_salud, porc)) +
geom_point(color = "#7b3294", size = 3) +
geom_segment(aes(x = problema_salud, xend = problema_salud, y = 0, yend = porc), color = "#7b3294", size = 1.5) +
geom_hline(yintercept = 100, color = "deeppink", size = 1) +
coord_flip() +
theme_classic() +
labs(title = "Porcentaje de avance del cumplimiento de garantías de oportunidad GES",
subtitle = "La línea roja demarca el plazo límite del 100%",
x = "",
y = "%") +
theme(plot.title = element_text(size = 16))
plot
# Guardamos el plot
ggsave("cumplimiento_GES.png", width = 40, height = 25, units = "cm")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment