Documento sobre el taller de ciencia de datos aplicado a salud pública y epidemiológica
Esta es una actividad basada en el taller de ciencia de datos aplicado a salud pública y epidemiológica para obtener nuevos conocimiento del lenguaje de programación de R.
Se analizarán y modelarán los datos sustraidos de "“JOHNS HOPKINGS University of Medicine”,relacionados con el virus COVID-19.
Se van a utlizar una recolección de datos libres de:
- Recolección de datos de JOHNS HOPKINGS University of Medicine para México
- Recolección de datos de coronavirus.gob.mx para Sonora
- Recolección de datos de enfermedades crónicas en Sonora
Importación de paquetes/ librerias
Esta libreria nos ayudará a tener una mejor gestión de paquetes.
setwd("~/EALMV9/U1A5") #Directorio de trabajo
library(pacman) #Para importar la biblioteca "pacman"
p_load("base64enc", "htmltools", "mime", "xfun", "prettydoc","readr", "knitr","DT","dplyr", "ggplot2","plotly", "gganimate","gifski","scales")
# base64enc = Una manera de codificar datos
# htmltools = genera widgets interactivos
# mine y xfun = descarga de datos
# prettydoc = mejora la presentacion del documento
# readr = leer datos
# DT = tablas de datos
# dplyr = manejo de datos
# ggplot2 = graficas
# plotly = grafica interactiva
# gganimate y gifski = crear animaciones
# scales = manejar las escalas a gusto propioDescarga este código
Se deja disposición el uso de este código, a quien guste utilizarlo.
xfun::embed_file("U1A5.Rmd")Datos globales de Johns Hopkings University para México
Lo vamos a hacer de lo general a lo particular
Datos obtenidos de:
“Coronavirus COVID-19 Global Cases by the Center for Systems Science and Engineering (CSSE) at Johns Hopkins University (JHU)” https://coronavirus.jhu.edu/map.html
Importar datos de JHU
Aqui vamos a guardar las url de los casos confimados, muertes y recuperación de COVID-19
# Se realizan las declaraciones de las variables que contendrán las url en donde se encuentran los datos crudos de confirmados, decesos, recuperados
url_confi <- "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv"
url_muertes <- "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"
# Leer los archivos .csv de las url
datos_conf <- read.csv(url_confi)
datos_muertes <- read.csv(url_muertes)
datos_recuperados <- read.csv(url_recuperados)
#definir variables
conf_mex <- t(datos_conf[datos_conf$Country.Region == "Mexico" ,])
mue_mex<- t(datos_muertes[datos_muertes$Country.Region == "Mexico" ,])
rec_mex<- t(datos_recuperados[datos_recuperados$Country.Region == "Mexico" ,])Formatear datos
El objetivo de formatear los datos son:
- Eliminar campos no utilizables
- Formatear las fechas
- Crear un marco de datos(data frame)
# Vector de fecha
Fecha <- seq(from = as.Date("2020-01-22"), to = as.Date("2021-02-14"), by = "day")
# Casos confirmados
vec1 <- as.vector(conf_mex)
vec2 <- vec1[5:394]
num1 <- as.numeric(vec2)
Confirmados <- as.vector(num1)
# Muertes
vec1 <- as.vector(mue_mex)
vec2 <- vec1[5:394]
num1 <- as.numeric(vec2)
Muertes <- as.vector(num1)
# Recuperados
vec1 <- as.vector(rec_mex)
vec2 <- vec1[5:394]
num1 <- as.numeric(vec2)
Recuperados <- as.vector(num1)
# Generación de un marco de datos(data frame)
datos1 <-data.frame(Fecha,Confirmados, Muertes,Recuperados)Graficación de datos
A continuación se presentan visualizaciones que representan los datos de confirmados, muertes y recuperados en México #### Gráfica estática
# Aqui se utiliza la libreria de ggplot para hacer graficas estáticas y de así representar los datos de una manera mas amigable.
# Se usa una geometria de línea para dar estetica de mapa
gcov <- ggplot(data = datos1) +
geom_line(aes(Fecha, Confirmados, colour = "Confirmados")) +
geom_line(aes(Fecha, Muertes, colour = "Muertes")) +
geom_line(aes(Fecha, Recuperados, colour = "Recuperados")) +
xlab("Fecha") +
ylab("COVID-19 en México") +
labs(colour="casos")+
ggtitle("Casos de COVID-19 en México (Fuente: JHU CSSE)") +
scale_y_continuous(labels = comma)
gcovGráfica Interactiva
Aqui se usara un paquete llamado “plotly”
ggplotly(gcov)Gráfica Animada
Utilizaremos una libreria llamada “gifski” que nos hara una gráfica animada
ggplot(data = datos1) +
geom_line(aes(Fecha, Confirmados, colour = "Confirmados")) +
geom_line(aes(Fecha, Muertes, colour = "Muertes")) +
geom_line(aes(Fecha, Recuperados, colour = "Recuperados")) +
xlab("Fecha") +
ylab("COVID-19 en México") +
labs(colour="casos")+
ggtitle("Casos de COVID-19 en México (Fuente: JHU CSSE)") +
scale_y_continuous(labels = comma) +
transition_reveal(Fecha)Datos de enfermedades crónicas en Sonora
Fuente utilizada para poder crear una tabla y una gráfica de las enfermedades en Sonora: https://datos.gob.mx/busca/dataset/expediente-clinico-electronico-unemes-enfermedades-cronicas--2018.
Importar datos
datos2 <- read.csv("Diagnosticos18.csv", encoding = "latin1")
class(datos2)## [1] "data.frame"
head(datos2)## Estado Jurisdiccion Uneme CLUES Cve.Persona Genero
## 1 Guanajuato IRAPUATO UNEME EC IRAPUATO GTSSA017250 GuIRUN5910 Mujer
## 2 Guanajuato IRAPUATO UNEME EC IRAPUATO GTSSA017250 GuIRUN5953 Mujer
## 3 Guanajuato IRAPUATO UNEME EC IRAPUATO GTSSA017250 GuIRUN6045 Mujer
## 4 Guanajuato IRAPUATO UNEME EC IRAPUATO GTSSA017250 GuIRUN6091 Mujer
## 5 Guanajuato IRAPUATO UNEME EC IRAPUATO GTSSA017250 GuIRUN6138 Mujer
## 6 Guanajuato IRAPUATO UNEME EC IRAPUATO GTSSA017250 GuIRUN5706 Hombre
## Cve.Diagnostico Diagnostico Fecha.Diagnostico
## 1 E78.2 Dislipidemias 02/01/2018
## 2 E78.2 Dislipidemias 02/01/2018
## 3 E78.2 Dislipidemias 02/01/2018
## 4 E78.2 Dislipidemias 02/01/2018
## 5 E78.2 Dislipidemias 02/01/2018
## 6 E78.2 Dislipidemias 02/01/2018
Tabla interactiva de datos de enfermedades crónicas
datatable(datos2)## Warning in instance$preRenderHook(instance): It seems your data is too big
## for client-side DataTables. You may consider server-side processing: https://
## rstudio.github.io/DT/server.html
Formateo de datos
Sonoras<- t(datos2[datos2$Estado=="Sonora", ])
Sonoras<- (datos2[datos2$Estado=="Sonora", ])Graficación
ggplot(Sonoras,aes(fill=Jurisdiccion, y=Diagnostico)) +
geom_bar(position = "dodge",stat="count") +
xlab("Número de casos") +
ylab("Diagnóstico") +
ggtitle("Enfermedades crónicas en Sonora, 2018 (CENAPRECE)")