TALLER DE CIENCIA DE DATOS APLICADA A SALUD PÚBLICA Y EPIDEMIOLOGÍA
Acerca de este documento
- Este es un documento es producto de un taller para la enseñanza de ciencia de datos con el lenguaje R, en donde se analiza la evolución del covid-19
Ejercicios incluidos
- Se divide en 3 temas principales:
- Datos globales de Johns Hopkins university en México
- Datos de coronavirus.gob.mx para Sonora y Sinaloa
- Datos de enfermedades crónicas en Sonora.
Importación de paquetes / bibliotecas
En esta parte se importa todas las bibliotecas que nos proporcionan herramientas para el manejo de datos en R.
setwd("~/RTALLERSALUD") # directorio de trabajo
library(pacman) #para implementar la biblioteca pacman
p_load("base64enc", "htmltools", "mime", "xfun", "prettydoc","readr", "knitr","DT","dplyr", "ggplot2","plotly", "gganimate","gifski","scales")Descarga de este codigo
Para fines de reproducibilidad se incluye todo el codigo para su descarga
xfun::embed_file("U1A5.Rmd")Datos globales de Johns Hopkins university en México
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
#Se declaran variables con la url del archivo csv crudo para obtener las estadísticas del día, en vez de importar desde local
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"
#Leer los archivos .csv de las url
#Gracias a la biblioteca "readr" ponemos leer los archivos csv
datos_conf <- read.csv(url_conf)
datos_decesos <- read.csv(url_decesos)
datos_recuperados <- read.csv(url_recuperados)
#definir variables
#se define como un vector transpuesto porque necesitamos manipular los datos en una sola columna
conf_mex <- t(datos_conf[datos_conf$Country.Region=="Mexico" ,])
dec_mex <- t(datos_decesos[datos_decesos$Country.Region=="Mexico" ,])
rec_mex <- t(datos_recuperados[datos_recuperados$Country.Region=="Mexico" ,])Formatear datos
Necesitamos modificar el documento csv para manipular los datos con los que trabajaremos, necesitamos hacer lo siguiente:
- Eliminar campos no utilizables
- Formatear las fechas
- Crear un marco de datos (data frame)
#vector de fecha
#se crea un vector de secuencia desde el día del inicio de los datos hasta el último
Fecha <- seq(from = as.Date("2020-01-22"), to = as.Date("2021-02-16"), by = "day")
#casos confirmados
#se obtiene un vector de la tabla manipulada
vec1 <- as.vector(conf_mex)
#se descarta los campos innecesarios
vec2 <- vec1[5:396]
#se transforma en tipo numerico
num1 <- as.numeric(vec2)
#se transforman de nuevamente a vector para trabajar en graficas
confirmados <- as.vector(num1)
#decesos
vec1 <- as.vector(dec_mex)
vec2 <- vec1[5:396]
num1 <- as.numeric(vec2)
decesos <- as.vector(num1)
#recuperados
vec1 <- as.vector(rec_mex)
vec2 <- vec1[5:396]
num1 <- as.numeric(vec2)
recuperados <- as.vector(num1)
#generacion de un marco de datos (data frame)
datos1 <- data.frame(Fecha, confirmados, decesos, recuperados)Graficación de datos
Ahora, con los datos de los casos confirmados, decesos y recuperados vamos a formar gráficas para enterder mejor los datos que tenemos
Gráfica estática
#a través de la libreria ggplot crearemos la grafica, nos solicita un dataframe, el cual contiene los vectores que se mostrarán en la grafica
gcov <- ggplot(data = datos1) +
geom_line(aes(Fecha, confirmados, colour="confirmados")) +
geom_line(aes(Fecha, decesos, colour="decesos")) +
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
Gracias al paquete ggplotly podemos hacer la grafica interactiva
ggplotly(gcov)Grafica animada
gcov <- ggplot(data = datos1) +
geom_line(aes(Fecha, confirmados, colour="confirmados")) +
geom_line(aes(Fecha, decesos, colour="decesos")) +
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)
gcov3. Datos de enfermedades crónicas en Sonora.
Fuente de los datos Obtenida de: https://datos.gob.mx/busca/dataset/expediente-clinico-electronico-unemes-enfermedades-cronicas--2018
URL de datos CSV crudos: http://www.cenaprece.salud.gob.mx/descargas/Excel/Diagnosticos18.csv
Expediente Clínico Electrónico UNEMES (unidades de especialidades médicas) Enfermedades Crónicas 2018
- El Centro Nacional de Programas Preventivos y Control de Enfermedades (CENAPRECE), es el órgano desconcentrado de la Secretaría de Salud responsable de conducir e implementar los programas sustantivos para la prevención y control de enfermedades, para reducir la morbilidad y mortalidad en la población mexicana.
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.Diagnotico
## 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
Formateo de datos
SonoraS <- t(datos2[datos2$Estado == "Sonora", ])
SonoraS <- (datos2[datos2$Estado == "Sonora", ])Graficación
#grafico agrupado
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)") tabla interactiva de datos
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