Last active
February 23, 2021 03:20
-
-
Save paulovillarroel/9f70207d8fd4793b3633d87bb1374c57 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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