U1A3 DISTRIBUCIONES DE FRECUENCIA Y COVID-19

Para esto, utilizamos datos de la universidad Jhons Hopkings

Importar

Importación de paquetes

library(readr)  #leer datos
library(plotly)  #gráficos interactivos
## Loading required package: ggplot2
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
library(tidyverse) #ciencia de datos
## -- Attaching packages ---------------------------------------------------------------------- tidyverse 1.3.0 --
## v tibble  3.0.3     v dplyr   1.0.2
## v tidyr   1.1.1     v stringr 1.4.0
## v purrr   0.3.4     v forcats 0.5.0
## -- Conflicts ------------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks plotly::filter(), stats::filter()
## x dplyr::lag()    masks stats::lag()
library(gganimate)  #crear animaciones
library(gifski)  #crear gifs

México

Importar URL de datos

  • Los datos se leeran desde el repositorio de JHSU
url_conf <- "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv"

url_decesos <-"https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv"

url_recuperados <- "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_recovered_global.csv"

Importar a archivo local los datos de URL

  • Leer archivos .csv de las URL
datos_conf <- read.csv(url_conf)
datos_decesos <- read.csv(url_decesos)
datos_recuperados <- read.csv(url_recuperados)
  • Extraer datos de México
conf_mex <- t(datos_conf [datos_conf$Country.Region=="Mexico" ,])
decesos_mex <- t(datos_decesos [datos_decesos$Country.Region=="Mexico" ,])
recuperados_mex <- t(datos_recuperados [datos_recuperados$Country.Region=="Mexico" ,])

Ordenar y transformar

plot(decesos_mex)
## Warning in xy.coords(x, y, xlabel, ylabel, log): NAs introducidos por coerción

#Elaborar un vector de fechas
Fecha <- seq(from = as.Date("2020-01-22"), to = as.Date("2020-09-09"), by="day")

#Transformación de datos a vectores
#Confirmados
vec1 <- as.vector(conf_mex) #A vector
vec2 <- vec1[5:236] #Filtrar
num1 <- as.numeric(vec2) #A numérico
Confirmados <- as.vector(num1) #A vector numérico

#Decesos
vec1 <- as.vector(decesos_mex)
vec2 <- vec1[5:236]
num1 <- as.numeric(vec2)
Decesos <- as.vector(num1)

#Recuperados
vec1 <- as.vector(recuperados_mex)
vec2 <- vec1[5:236]
num1 <- as.numeric(vec2)
Recuperados <- as.vector(num1)

#Ordenar los datos en un data frame, marco de datos, matriz
datos1 <- data.frame(Fecha, Confirmados, Decesos, Recuperados)

Visualizar

#Figura 2 Confirmados ggplot
ggplot (data=datos1)+
  geom_line(mapping = aes(x = Fecha, y = Confirmados))+
  ggtitle("Casos acumulados confimados de COVID-19 en México, al día 09/09/20")

#Figura 3 Recuperados ggplot
ggplot (data = datos1) +
  geom_line(mapping = aes(x = Fecha, y = Recuperados)) +
  ggtitle("Casos acumulados de recuperados de COVID-19 en México, al día 09/09/20")

#Figura 4 Decesos ggplot
ggplot (data = datos1) +
  geom_line(mapping = aes(x = Fecha, y = Decesos)) +
  ggtitle("Casos acumulados de Decesos de COVID-19 en México, al día 09/09/20")

El objetivo de realizar animacione de transición temporal es ilustrar la manera en la que han crecido los casos confirmados de COVID-19.

ggplot(data = datos1) +
  geom_line(mapping = aes(x = Fecha, y = Confirmados)) +
  ggtitle("Casos acumulados confirmados de COVID-19 en México, al día 09/09/20") +
  transition_reveal(Fecha)

#Gráfica multiejes 
gcov <- ggplot(data=datos1) +
  geom_line(aes(x=Fecha, y=Confirmados), colour="red") +
  geom_line(aes(x=Fecha, y=Decesos), colour="green") +
  geom_line(aes(x=Fecha, y=Recuperados), colour="blue") +
  ggtitle("Casos acumulados de COVID-19 en México, al día 09/09/20") +
  ylab("COVID-19 en méxico") + xlab("Mes")
gcov

ggplotly(gcov)

Italia

Importar URL de datos

  • Los datos se leeran desde el repositorio de JHSU
url_conf <- "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv"

url_decesos <-"https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv"

url_recuperados <- "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_recovered_global.csv"

Importar a archivo local los datos de URL

  • Leer archivos .csv de las URL
datos_conf <- read.csv(url_conf)
datos_decesos <- read.csv(url_decesos)
datos_recuperados <- read.csv(url_recuperados)
  • Extraer datos de Italia
conf_itl <- t(datos_conf [datos_conf$Country.Region=="Italy" ,])
decesos_itl <- t(datos_decesos [datos_decesos$Country.Region=="Italy" ,])
recuperados_itl <- t(datos_recuperados [datos_recuperados$Country.Region=="Italy" ,])

Ordenar y transformar

plot(decesos_itl)
## Warning in xy.coords(x, y, xlabel, ylabel, log): NAs introducidos por coerción

#Elaborar un vector de fechas
Fecha <- seq(from = as.Date("2020-01-22"), to = as.Date("2020-09-09"), by="day")

#Transformación de datos a vectores
#Confirmados
vec1 <- as.vector(conf_itl) #A vector
vec2 <- vec1[5:236] #Filtrar
num1 <- as.numeric(vec2) #A numérico
Confirmados <- as.vector(num1) #A vector numérico

#Decesos
vec1 <- as.vector(decesos_itl)
vec2 <- vec1[5:236]
num1 <- as.numeric(vec2)
Decesos <- as.vector(num1)

#Recuperados
vec1 <- as.vector(recuperados_itl)
vec2 <- vec1[5:236]
num1 <- as.numeric(vec2)
Recuperados <- as.vector(num1)

#Ordenar los datos en un data frame, marco de datos, matriz
datos1 <- data.frame(Fecha, Confirmados, Decesos, Recuperados)

Visualizar

#Figura 2 Confirmados ggplot
ggplot (data=datos1)+
  geom_line(mapping = aes(x = Fecha, y = Confirmados))+
  ggtitle("Casos acumulados confimados de COVID-19 en Italia, al día 09/09/20")

#Figura 3 Recuperados ggplot
ggplot (data = datos1) +
  geom_line(mapping = aes(x = Fecha, y = Recuperados)) +
  ggtitle("Casos acumulados de recuperados de COVID-19 en Italia, al día 09/09/20")

#Figura 4 Decesos ggplot
ggplot (data = datos1) +
  geom_line(mapping = aes(x = Fecha, y = Decesos)) +
  ggtitle("Casos acumulados de Decesos de COVID-19 en Italia, al día 09/09/20")

El objetivo de realizar animacione de transición temporal es ilustrar la manera en la que han crecido los casos confirmados de COVID-19.

ggplot(data = datos1) +
  geom_line(mapping = aes(x = Fecha, y = Confirmados)) +
  ggtitle("Casos acumulados confirmados de COVID-19 en Italia, al día 09/09/20") +
  transition_reveal(Fecha)

#Gráfica multiejes 
gcov <- ggplot(data=datos1) +
  geom_line(aes(x=Fecha, y=Confirmados), colour="red") +
  geom_line(aes(x=Fecha, y=Decesos), colour="green") +
  geom_line(aes(x=Fecha, y=Recuperados), colour="blue") +
  ggtitle("Casos acumulados de COVID-19 en Italia, al día 09/09/20") +
  ylab("COVID-19 en Italia") + xlab("Mes")
gcov

ggplotly(gcov)

Conclusión

En este ejercicio realizamos distintas gráficas para demostrar el progreso de los casos confirmados, decesos y recuperados de COVID-19 en México hasta el 09 de septiembre del 2020 y compararlos con los datos obtenidos en Italia hasta la misma fecha utilizando las lidrerías readr, plotly, tidyverse, gganimate y gifski como apoyo para la lectura y visualización de los datos.