Financial Times
Financial Times

Esta es mi primera publicación para realizar gráficos de series temporales del número de Casos confirmados con la base de datos otorgado por European Centre for Disease Prevention and Control (ECDC) en R.

Los costos humanitarios del brote de coronavirus continúan aumentando, con más de 679.000 personas infectadas en todo el mundo. El número de personas que se ha confirmado que han muerto como resultado del virus ha superado ya las 31.700. 

La proliferación del virus ha sido declarada como pandemia por la Organización Mundial de la Salud, lo que significa que se está extendiendo rápidamente en diferentes partes del mundo. Más de 180 países han confirmado casos hasta ahora. El epicentro del coronavirus es ahora Europa, con el mayor número de casos confirmados en Italia, y el número de muertes crece más rápidamente en Italia, España, el Reino Unido y los EE.UU. que en China en la misma etapa del brote.

(Actualización de la situación 28 de marzo de 2020, conjunto de datos recogidos 6:00-10:00 CET)

FT covid-19

La Replicación

Esta réplica dependerá de unos pocos paquetes. tidyverse está al frente de mi flujo de trabajo. Y los paquetes httr y readxl cargará la base de datos. Llamaré a algunas funciones de forcats para procesar la información de los gráficos.

library(tidyverse)
library(httr)
library(readxl)
library(kableExtra)

# Los datos se cargarán actualizados
url <- paste("https://www.ecdc.europa.eu/sites/default/files/documents/COVID-19-geographic-disbtribution-worldwide-",
            format(Sys.time(),
            "%Y-%m-%d"),
            ".xlsx",
            sep = "")
GET(url,
  authenticate(":", ":", type="ntlm"),
  write_disk(tf <- tempfile(fileext = ".xlsx")))
data <- read_excel(tf)
Las primeras 5 filas de la base de datos
dateRep day month year cases deaths countriesAndTerritories geoId countryterritoryCode popData2018
2020-03-27 27 3 2020 0 0 Afghanistan AF AFG 37172386
2020-03-26 26 3 2020 33 0 Afghanistan AF AFG 37172386
2020-03-25 25 3 2020 2 0 Afghanistan AF AFG 37172386
2020-03-24 24 3 2020 6 1 Afghanistan AF AFG 37172386
2020-03-23 23 3 2020 10 0 Afghanistan AF AFG 37172386

Los Datos

El marco de datos se almacena como uniondensity. Tiene 7126 filas con 10 columnas. La primera columna, dateRep la fecha intuitivamente. De la columna 2 a la 4 representará day, month y year respectivamente. Las columnas que nos vamos a enfocar para realizar el gráfico será el número de casos (cases) que no representará la suma acumulada hasta la actualidad (27 de marzo de 2020). La columna 7 será el nombre completo de cada país countryterritoryCode y el identificador correspondiente a cada país como geoId.

Primeramente se realizará un data frame sobre aquellos países que hayan tenido un número mayor o igual a 257 (filter(n >= 257)).

topdat = data %>%
  #agrupar por cada identificador de país
  group_by(geoId) %>%
  #generar una variable n que registrará en número maximo de casos en un día para todos los países
  summarize(n = max(cases)) %>%
  #un filtro para casos mayores a 257
  filter(n >= 257) %>% # filter(geoId == "EC" | geoId == "CN") %>%
  #ordenar en forma descendente
  arrange(desc(n))

Ahora viene para mi la parte más intereante… Para poder crear cada panel en R la

<!DOCTYPE html>

plotly

And then you keep writing your exciting blog post.