library(openxlsx)
library(highcharter)
library(tidyverse)

  ## Lectura de la base de datos construida
hospitales <- read.xlsx('data/hospitales.xlsx')
hospitales[,c(-1,-2)] <- lapply(hospitales[,c(-1,-2)], as.numeric)

hospitales$Rendimiento_camas <- round(hospitales$Rendimiento_camas)
hospitales$Camas_disponibles <- round(hospitales$Camas_disponibles)

1. Mapas dinámicos

Egresos Hospitalarios

  # Calculamos la media de los egresos hospitalarios por provincia
egresos <- hospitales %>% group_by(Provincia) %>% summarise(media = mean(Egresos_hospitalarios))

  # Leemos la siguiente referencia, para tener el orden de las provincias y que cuadren los datos en el mapa interactivo
mapdata <- get_data_from_map(download_map_data("countries/ec/ec-all"))

  # Tomamos el código de la provincia y el nombre, para completar las provincias que falten
cod <- data.frame(cod = mapdata$`hc-a2`, Provincia = toupper(mapdata$`woe-name`))
cod$Provincia[6] <- 'SANTA ELENA'
cod$Provincia[7] <- 'SANTO DOMINGO DE LOS TSACHILAS'
cod <- cod[-nrow(cod),]  ## presenta NA

  # Para evitarnos conflictos, quitamos las tildes de los nombres de las provincias en las 2 bases
egresos$Provincia <- chartr("ÁÉÍÓÚ", "AEIOU", egresos$Provincia)
cod$Provincia <- chartr("ÁÉÍÓÚ", "AEIOU", cod$Provincia)

egresos$Provincia
##  [1] "AZUAY"                          "BOLIVAR"                       
##  [3] "CAÑAR"                          "CARCHI"                        
##  [5] "CHIMBORAZO"                     "COTOPAXI"                      
##  [7] "EL ORO"                         "ESMERALDAS"                    
##  [9] "GALAPAGOS"                      "GUAYAS"                        
## [11] "IMBABURA"                       "LOJA"                          
## [13] "LOS RIOS"                       "MANABI"                        
## [15] "MORONA"                         "NAPO"                          
## [17] "ORELLANA"                       "PASTAZA"                       
## [19] "PICHINCHA"                      "SANTA ELENA"                   
## [21] "SANTO DOMINGO DE LOS TSACHILAS" "SUCUMBIOS"                     
## [23] "TUNGURAHUA"                     "ZAMORA"
cod$Provincia 
##  [1] "GUAYAS"                         "ESMERALDAS"                    
##  [3] "CARCHI"                         "IMBABURA"                      
##  [5] "SUCUMBIOS"                      "SANTA ELENA"                   
##  [7] "SANTO DOMINGO DE LOS TSACHILAS" "AZUAY"                         
##  [9] "EL ORO"                         "LOJA"                          
## [11] "ZAMORA CHINCHIPE"               "CAÑAR"                         
## [13] "BOLIVAR"                        "COTOPAXI"                      
## [15] "LOS RIOS"                       "MANABI"                        
## [17] "CHIMBORAZO"                     "MORONA SANTIAGO"               
## [19] "PICHINCHA"                      "PASTAZA"                       
## [21] "NAPO"                           "ORELLANA"                      
## [23] "TUNGURAHUA"                     "GALAPAGOS"

Vemos que hay dos provincias cuyos cuyos nombres no coinciden

egresos$Provincia[egresos$Provincia == 'MORONA'] <- 'MORONA SANTIAGO'
egresos$Provincia[egresos$Provincia == 'ZAMORA'] <- 'ZAMORA CHINCHIPE'

  # Unimos la información para tener el orden adecuado para el gráfico
mapa.egresos <- full_join(cod, egresos, by = 'Provincia')

  # Graficamos
hcmap("countries/ec/ec-all", data = mapa.egresos, value = "media",
      dataLabels = list(enabled = TRUE, format = '{point.name}')) 

Altas (Vivos)

altas <- hospitales %>% group_by(Provincia) %>% summarise(media = mean(Altas_vivos))
altas$Provincia <- chartr("ÁÉÍÓÚ", "AEIOU", altas$Provincia)

altas$Provincia[altas$Provincia == 'MORONA'] <- 'MORONA SANTIAGO'
altas$Provincia[altas$Provincia == 'ZAMORA'] <- 'ZAMORA CHINCHIPE'

mapa.altas <- full_join(cod, altas, by = 'Provincia')

hcmap("countries/ec/ec-all", data = mapa.altas, value = "media",
      dataLabels = list(enabled = TRUE, format = '{point.name}')) 

Total Fallecidos

fallecidos <- hospitales %>% group_by(Provincia) %>% summarise(media = mean(Total_fallecidos))
fallecidos$Provincia <- chartr("ÁÉÍÓÚ", "AEIOU", fallecidos$Provincia)

fallecidos$Provincia[fallecidos$Provincia == 'MORONA'] <- 'MORONA SANTIAGO'
fallecidos$Provincia[fallecidos$Provincia == 'ZAMORA'] <- 'ZAMORA CHINCHIPE'

mapa.fallecidos <- full_join(cod, fallecidos, by = 'Provincia')

hcmap("countries/ec/ec-all", data = mapa.fallecidos, value = "media",
      dataLabels = list(enabled = TRUE, format = '{point.name}')) 

Número de Establecimientos

estab <- hospitales %>% group_by(Provincia) %>% summarise(media = mean(N_establecimientos))
estab$Provincia <- chartr("ÁÉÍÓÚ", "AEIOU", estab$Provincia)

estab$Provincia[fallecidos$Provincia == 'MORONA'] <- 'MORONA SANTIAGO'
estab$Provincia[fallecidos$Provincia == 'ZAMORA'] <- 'ZAMORA CHINCHIPE'

mapa.estab <- full_join(cod, estab, by = 'Provincia')

hcmap("countries/ec/ec-all", data = mapa.estab, value = "media",
      dataLabels = list(enabled = TRUE, format = '{point.name}')) 

Camas Disponibles

camas <- hospitales %>% group_by(Provincia) %>% summarise(media = mean(Camas_disponibles))
camas$Provincia <- chartr("ÁÉÍÓÚ", "AEIOU", camas$Provincia)

camas$Provincia[camas$Provincia == 'MORONA'] <- 'MORONA SANTIAGO'
camas$Provincia[camas$Provincia == 'ZAMORA'] <- 'ZAMORA CHINCHIPE'

mapa.camas <- full_join(cod, camas, by = 'Provincia')

hcmap("countries/ec/ec-all", data = mapa.camas, value = "media",
      dataLabels = list(enabled = TRUE, format = '{point.name}')) 

Rendimiento Camas

rend <- hospitales %>% group_by(Provincia) %>% summarise(media = mean(Rendimiento_camas))
rend$Provincia <- chartr("ÁÉÍÓÚ", "AEIOU", rend$Provincia)

rend$Provincia[rend$Provincia == 'MORONA'] <- 'MORONA SANTIAGO'
rend$Provincia[rend$Provincia == 'ZAMORA'] <- 'ZAMORA CHINCHIPE'

mapa.rend <- full_join(cod, rend, by = 'Provincia')

hcmap("countries/ec/ec-all", data = mapa.rend, value = "media",
      dataLabels = list(enabled = TRUE, format = '{point.name}')) 

2. Evoluciones

Egresos Hospitalarios

library(gganimate)
library(hrbrthemes)

hospitales$Provincia[hospitales$Provincia == 'SANTO DOMINGO DE LOS TSACHILAS'] <- 'STO DOMINGO'

hospitales  %>%
  ggplot(aes(x=as.numeric(Año), y=Egresos_hospitalarios, group=Provincia, color=Provincia)) +
  geom_line() +
  geom_point() +
  ggtitle("Evolución de EH, por provincia y año") +
  theme_ipsum() +
  ylab("Egresos Hospitalarios") + xlab('Años') + 
  transition_reveal(as.numeric(Año))

Altas (Vivos)

hospitales  %>%
  ggplot(aes(x=as.numeric(Año), y=Altas_vivos, group=Provincia, color=Provincia)) +
  geom_line() +
  geom_point() +
  ggtitle("Evolución de Altas (Vivos), por provincia y año") +
  theme_ipsum() +
  ylab("Altas") + xlab('Años') + 
  transition_reveal(as.numeric(Año))

Total Fallecidos

hospitales  %>%
  ggplot(aes(x=as.numeric(Año), y=Total_fallecidos, group=Provincia, color=Provincia)) +
  geom_line() +
  geom_point() +
  ggtitle("Evolución de Total de Fallecidos, por provincia y año") +
  theme_ipsum() +
  ylab("Fallecidos") + xlab('Años') + 
  transition_reveal(as.numeric(Año))

Número de Establecimientos

hospitales  %>%
  ggplot(aes(x=as.numeric(Año), y=N_establecimientos, group=Provincia, color=Provincia)) +
  geom_line() +
  geom_point() +
  ggtitle("Evolución de Establecimientos, por provincia y año") +
  theme_ipsum() +
  ylab("Establecimientos") + xlab('Años') + 
  transition_reveal(as.numeric(Año))

Camas Disponibles

hospitales  %>%
  ggplot(aes(x=as.numeric(Año), y=Camas_disponibles, group=Provincia, color=Provincia)) +
  geom_line() +
  geom_point() +
  ggtitle("Evolución de Camas, por provincia y año") +
  theme_ipsum() +
  ylab("Camas disponibles") + xlab('Años') + 
  transition_reveal(as.numeric(Año))

Rendimiento Camas

hospitales  %>%
  ggplot(aes(x=as.numeric(Año), y=Rendimiento_camas, group=Provincia, color=Provincia)) +
  geom_line() +
  geom_point() +
  ggtitle("Evolución del rendimientos de camas, por provincia y año") +
  theme_ipsum() +
  ylab("Rendimientos") + xlab('Años') + 
  transition_reveal(as.numeric(Año))