Este documento es un ejercicio práctico para aplicar algunos conceptos del lenguaje de programación R; editar bases de datos, realizar gráficos descriptivos, crear tablas. Es un ejemplo demostrativo, que a su vez, es usado por quien escribe estas líneas, para dejar nota de los códigos.
Siéntase en la libertad de copiar, compartir, criticar, satirizar, reproducir las ideas del documento; como también sugerir mejoras u opinar acerca del mismo.
La interpretación y análisis conceptual se deja al lector interesado en la temática propuesta para el ejercicio.
La base de datos fué obtenida el día 13 de Noviembre de 2020 a través de la página de datos abiertos del gobierno de Colombia: datos.gov.co
library(data.table)
datos <- fread("Casos_positivos_de_COVID-19_en_Colombia.csv",
encoding = "UTF-8", na.strings = "N/A")
|--------------------------------------------------|
|==================================================|
La base de datos tiene 1’165.326 filas y 23 columnas (variables).
[1] 1165326 23
Una descripción completa de las variables se presenta en el sitio web de datos abiertos del gobierno de Colombia.
[1] "fecha reporte web" "ID de caso"
[3] "Fecha de notificación" "Código DIVIPOLA departamento"
[5] "Nombre departamento" "Código DIVIPOLA municipio"
[7] "Nombre municipio" "Edad"
[9] "Unidad de medida de edad" "Sexo"
[11] "Tipo de contagio" "Ubicación del caso"
[13] "Estado" "Código ISO del país"
[15] "Nombre del país" "Recuperado"
[17] "Fecha de inicio de síntomas" "Fecha de muerte"
[19] "Fecha de diagnóstico" "Fecha de recuperación"
[21] "Tipo de recuperación" "Pertenencia étnica"
[23] "Nombre del grupo étnico"
Se editarán los nombres de las variables con el objetivo de que no generen confusión en el análisis.
Se precisa tener nombres cortos preferiblemente, que no contengan caracteres especiales tales como ")%(&´’/#¨!$.
Tampoco es recomendable que contengan acentos característicos del lenguaje natural, tildes o la letra ñ por ejemplo.
La variable etnia
tiene seis niveles, establecidos de la siquiente manera:
fecha_notif
es la fecha de notificación ante el SIVIGILA
fecha_diagnos
Fecha de confirmación por laboratorio.
#librerías
library(lubridate)
library(tidyverse)
library(janitor)
library(Hmisc)
datos %>%
#nombres de las variables en minúsculas
clean_names() %>%
#seleccionar y renombrar las variables de interés
select(fecha_sintomas = fecha_de_inicio_de_sintomas,
fecha_diagnos = fecha_de_diagnostico,
fecha_notif = fecha_de_notificacion,
fecha_recu = fecha_de_recuperacion,
departamento = nombre_departamento,
municipio = nombre_municipio,
edad,
sexo,
contagio = tipo_de_contagio,
ubicacion_caso = ubicacion_del_caso,
estado,
pais = nombre_del_pais,
recuperado,
tipo_recuperacion = tipo_de_recuperacion,
etnia = pertenencia_etnica) %>%
mutate(#cambiar a formato fecha (date)
fecha_sintomas = as.Date(fecha_sintomas, format="%d/%m/%Y"),
fecha_diagnos = as.Date(fecha_diagnos, format="%d/%m/%Y"),
fecha_notif = as.Date(fecha_notif, format="%d/%m/%Y"),
fecha_recu = as.Date(fecha_recu, format="%d/%m/%Y"),
#editar los valores de la variable sexo
sexo = gsub("f", "F", sexo),
sexo = gsub("m", "M", sexo),
#editar nombres de los departamentos
departamento = capitalize(tolower(departamento)),
departamento = gsub("Sta marta d.e.", "Sta marta",departamento),
departamento = gsub("Atlantico", "Atlántico",departamento),
departamento = gsub("Bogota", "Bogotá",departamento),
departamento = gsub("Boyaca", "Boyacá",departamento),
departamento = gsub("Caqueta", "Caquetá",departamento),
departamento = gsub("Choco", "Chocó",departamento),
departamento = gsub("Cordoba", "Córdoba",departamento),
departamento = gsub("Guainia", "Guainía",departamento),
departamento = gsub("Norte santander", "Norte Santander",departamento),
departamento = gsub("Valle", "Valle del Cauca",departamento),
#editar nombres de los municipios
municipio = capitalize(tolower(municipio)),
#editar los valores de la variable estado
estado = gsub("LEVE", "Leve", estado),
estado = gsub("leve", "Leve", estado),
estado = gsub("moderado", "Moderado", estado),
#editar los valores de la variable contagio
contagio = gsub("En estudio", "en_estudio",contagio),
contagio = gsub("EN ESTUDIO", "en_estudio",contagio),
contagio = gsub("En Estudio", "en_estudio",contagio),
contagio = gsub("relacionado", "Relacionado",contagio),
contagio = gsub("Relacioando", "Relacionado",contagio),
contagio = gsub("RELACIONADO", "Relacionado",contagio),
#editar los valores de la variable pais
pais = capitalize(tolower(pais)),
pais = gsub("Arabia saudita" , "Arabia saudí",pais),
pais = gsub("Arabia saudita" , "Arabia saudí",pais),
pais = gsub("Estados unidos de america", "Estados unidos",pais),
pais = gsub("Estados unidos de américa", "Estados unidos",pais),
pais = gsub("Mexico" , "México",pais),
pais = gsub("Panama" , "Panamá",pais),
pais = gsub("Peru" , "Perú",pais),
pais = gsub("Reino unido de gran bretaña e irlanda del norte" , "Reino unido",pais),
pais = gsub("República árabe siria" , "Siria",pais),
#editar los valores de la variable recuperado
recuperado = gsub("fallecido" , "Fallecido", recuperado),
#editar los valores de la variable ubicacion_caso
ubicacion_caso = gsub("CASA" , "Casa", ubicacion_caso),
ubicacion_caso = gsub("Hospital UCI" , "UCI", ubicacion_caso),
#convertir variable etnia en factor
etnia = as.factor(etnia)) %>%
#convertir las variables que estén en formato character a formato factor
mutate_if(is.character, as.factor) -> covid
Se guardará la base de datos editada en un archivo .csv
con el nombre datos_covid.csv
.
Las líneas rojas verticales punteadas representan algunas fechas durante la pandemia; de izquierda a derecha:
19 de Junio de 2020. Primer día sín IVA.
3 de Julio de 2020. Segundo día sín IVA.
1 de Septiembre de 2020. Inicia el aislamiento selectivo.
9 de Octubre de 2020. Eliminatorias copa del mundo de fútbol Qatar 2022
library(plotly)
ggplotly(
covid %>%
group_by(fecha_diagnos) %>%
summarise(Total = n()) %>%
ggplot(., mapping = aes(x = fecha_diagnos, y = Total))+
geom_point(color = "darkcyan")+
scale_x_date(date_breaks = "15 day") +
geom_line(color = "gray") +
geom_smooth(se = FALSE, color = "cornflowerblue")+
geom_vline ( xintercept = as.numeric(as.Date ("2020-06-19")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
geom_vline ( xintercept = as.numeric(as.Date ("2020-09-01")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
geom_vline ( xintercept = as.numeric(as.Date ("2020-07-03")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
geom_vline ( xintercept = as.numeric(as.Date ("2020-10-9")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
labs(x = "Fecha", y = "Casos", title = "Total Casos por Día",
subtitle = "", caption = "")+
theme_bw()+
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
theme(panel.border = element_blank())
) %>%
layout(height = 500, width = 700)
library(plotly)
ggplotly(
covid %>%
group_by(fecha_diagnos) %>%
summarise(Total = n()) %>%
ggplot(., mapping = aes(x = fecha_diagnos, y = log(Total)))+
geom_point(color = "darkcyan")+
scale_x_date(date_breaks = "15 day") +
geom_line(color = "gray") +
geom_smooth(se = FALSE, color = "cornflowerblue")+
geom_vline ( xintercept = as.numeric(as.Date ("2020-06-19")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
geom_vline ( xintercept = as.numeric(as.Date ("2020-09-01")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
geom_vline ( xintercept = as.numeric(as.Date ("2020-07-03")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
geom_vline ( xintercept = as.numeric(as.Date ("2020-10-9")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
labs(x = "Fecha", y = "log(Casos)", title = "Escala logaritmica para casos diarios",
subtitle = "", caption = "")+
theme_bw()+
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
theme(panel.border = element_blank())
) %>%
layout(height = 500, width = 700)
ggplotly(covid %>%
group_by(fecha_notif) %>%
summarise(Total = n()) %>%
ungroup() %>%
mutate(T.Acumulado = cumsum(Total)) %>%
ggplot(otro, mapping = aes(x = fecha_notif, y = T.Acumulado))+
geom_line(color = "aquamarine4", size=1)+
geom_vline ( xintercept = as.numeric(as.Date ("2020-06-19")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
geom_vline ( xintercept = as.numeric(as.Date ("2020-09-01")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
geom_vline ( xintercept = as.numeric(as.Date ("2020-07-03")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
geom_vline ( xintercept = as.numeric(as.Date ("2020-10-9")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
scale_x_date(date_breaks = "15 day") +
labs(x = "Fecha", y = "Casos", title = "Casos Totales Acumulados Nacional",
subtitle = "", caption = "")+
theme_bw()+
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
theme(panel.border = element_blank())
)
ggplotly(covid %>%
group_by(fecha_notif) %>%
summarise(Total = n()) %>%
ungroup() %>%
mutate(T.Acumulado = cumsum(Total)) %>%
ggplot(otro, mapping = aes(x = fecha_notif, y = log(T.Acumulado)))+
geom_line(color = "aquamarine4", size=1)+
geom_vline ( xintercept = as.numeric(as.Date ("2020-06-19")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
geom_vline ( xintercept = as.numeric(as.Date ("2020-09-01")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
geom_vline ( xintercept = as.numeric(as.Date ("2020-07-03")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
geom_vline ( xintercept = as.numeric(as.Date ("2020-10-9")),
linetype="dashed",
color = "firebrick", size=0.5, alpha=0.5)+
scale_x_date(date_breaks = "15 day") +
labs(x = "", y = "log(casos)", title = "Escala Logarítmica Casos Acumulados Nacional",
subtitle = "", caption = "")+
theme_bw()+
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
theme(panel.border = element_blank())
)
Tabla con el total de casos positivos en cada departamento.
El punto rojo representa la media
ggplotly(covid %>%
group_by(departamento, fecha_notif) %>%
summarise(Total = n()) %>%
ungroup() %>%
group_by(departamento, fecha_notif) %>%
summarise(Total = sum(Total)) %>%
ggplot(aes(x = reorder(departamento, Total), y = Total))+
geom_boxplot(fill = "cornflowerblue")+
labs(x = "", y = "Casos", title = "",
subtitle = "", caption = "")+
stat_summary(fun.y = mean, geom = "point", color = "firebrick")+
scale_y_log10()+
theme_bw()+
theme(panel.border = element_blank())+
coord_flip())
Serie de tiempo de los casos positivos presentados por género.
ggplotly(
covid%>%
group_by(sexo, fecha_notif) %>%
summarise(Total = n()) %>%
mutate(T.Acumulado = cumsum(Total)) %>%
ggplot(mapping = aes(x = fecha_notif, y = T.Acumulado, color = sexo))+
geom_line(size=1, alpha=0.7)+
scale_color_manual(values = c("aquamarine2", "chocolate2"))+
scale_x_date(date_breaks = "15 day") +
labs(x = "Fecha", y = "Casos", title = "Casos totales por género",
subtitle = "", caption = "")+
theme_bw()+
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
theme(panel.border = element_blank())
)
Serie de tiempo en escala logartítmica de casos acumulados por género.
ggplotly(
covid%>%
group_by(sexo, fecha_notif) %>%
summarise(Total = n()) %>%
mutate(T.Acumulado = cumsum(Total)) %>%
ggplot(mapping = aes(x = fecha_notif, y = log(T.Acumulado), color = sexo))+
geom_line(size=1)+
scale_color_manual(values = c("aquamarine2", "chocolate2"))+
scale_x_date(date_breaks = "15 day") +
labs(x = "Fecha", y = "log(casos)", title = "Escala logarítmica casos totales por género",
subtitle = "", caption = "")+
theme_bw()+
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
theme(panel.border = element_blank())
)
En la semana 25 se encuentra el día 19 de Junio. Primer día sin IVA.
En la semana 27 se encuentra el día 3 de Julio. Segundo día sín IVA.
En la semana 36 se encuentra el día 1 de Septiembre. Inicia el aislamiento selectivo.
En la semana 41 y 42 se encuentra el 9 de Octubre y el 13 de Octubre. Eliminatorias copa mundial de fútbol Qatar 2022.
library(ggridges)
covid %>%
group_by(fecha_notif) %>%
count(name = "Total_dia") %>%
ungroup() %>%
mutate(Semana = week(fecha_notif)) %>%
ggplot(aes(x = Total_dia, y = as.factor(Semana)))+
geom_density_ridges(fill = "cadetblue")+theme_bw()+
theme(panel.border = element_blank())+
labs(x = "Casos por día", y = "Semana", title = "Variación semanal")
covid %>%
group_by(fecha_notif, sexo) %>%
count(name = "Total_dia") %>%
ungroup() %>%
mutate(Semana = week(fecha_notif)) %>%
ggplot(aes(x = Total_dia, y = as.factor(Semana), fill = sexo))+
scale_fill_manual(values = c("cadetblue", "firebrick2"))+
geom_density_ridges(alpha = 0.7)+theme_bw()+
theme(panel.border = element_blank(), legend.position = "right")+
labs(x = "Casos por día", y = "Semana", title = "Variación semanal por género")
ggplot(data = covid, aes(edad))+
geom_density(alpha = 0.5, fill = "darkcyan")+
labs(x = "Edad", y = "Densidad", title = "Gráfico de densidad", subtitle="Distribución de casos según la edad")
ggplot(data = covid, aes(edad, fill = sexo))+
geom_density(alpha = 0.5)+
labs(x = "Edad", y = "Densidad", title= "Gráfico de densidad",
subtitle = "Distribución casos según la edad y el género")+
scale_fill_manual(values = c("cadetblue", "firebrick2"))
Un diagrama de violín se utiliza para visualizar la distribución de los datos y su densidad de probabilidad. Este gráfico es una combinación de un diagrama de cajas y bigotes y un diagrama de densidad girado y colocado a cada lado, para mostrar la forma de distribución de los datos. Fuente
covid %>%
ggplot(aes(x = sexo, y = edad))+
geom_violin(aes(color = sexo, fill = sexo), alpha = 0.7)+
geom_boxplot(aes(fill = sexo),width = 0.2, outlier.alpha = 0.01)+
scale_fill_manual(values = c("mediumpurple2", "darkslategray3"))+
labs(x = "Sexo", y = "Edad", title = "Gráfico de violín para edades y género")
Se filtran casos en los que el estado es Fallecido
para representarlos por género y edad.
fallecido <- covid %>%
filter(estado == "Fallecido")
ggplot(data = fallecido, mapping=aes(x = edad, fill = sexo))+
geom_density(alpha = 0.7)+
labs(x="Edad", y="Densidad", title="Distribución fallecidos por edad y género")+
scale_fill_manual(values = c("gold", "darkslategray3"))
Se filtran los valores de Recuperado
para representarlos por género y edad.
recuperado <- covid %>%
filter(recuperado == "Recuperado")
ggplot(data = covid, mapping=aes(x = edad, fill = sexo))+
geom_density(alpha = 0.7)+
labs(x = "Edad", y="Densidad", title="Distribución recuperados por género y edad")+
scale_fill_manual(values = c("gold", "darkslategray3"))
pais
y etnia
pais
Tabla de frecuencias para la variable pais
. En orden descendente.
España Estados unidos Ecuador
-258 -219 -65
México Brasil Panamá
-55 -52 -36
Turquía Perú Chile
-27 -24 -20
Francia Venezuela Jamaica
-19 -18 -16
Reino unido Puerto rico Alemania
-15 -13 -11
Egipto Italia República dominicana
-11 -11 -10
Antillas neerlandesas Israel Argentina
-8 -6 -4
Cuba Grecia Aruba
-4 -4 -3
Canadá Arabia saudí Costa rica
-3 -2 -2
Curazao Marruecos Nicaragua
-2 -2 -2
Australia Bélgica Croacia
-1 -1 -1
Emiratos arabes unidos Guatemala Honduras
-1 -1 -1
Irlanda Kenya Portugal
-1 -1 -1
Siria Suecia Suiza
-1 -1 -1
Uruguay
-1
etnia
Descripción obtenida del sitio web:
1-Indígena 2-ROM 3-Raizal 4-Palenquero 5-Negro 6-Otro. Esta variable se actualizará cada semana. ADVERTENCIA DE RESPONSABILIDAD: La variable etnia depende totalmente de tres cosas: - El correcto diligenciamiento de la variable Etnia por los profesionales de salud que notifican en más de 10.000 instituciones de salud en todos los municipios y departamentos. - Del autorreconocimiento de la persona cuando se le pregunta por esta variable. - Del listado censal que haga y mantenga actualizado cada departamento. No depende del Instituto Nacional de Salud, y por lo tanto, es responsabilidad de las autoridades de cada municipio, departamento y distrito de Colombia; la calidad y consistencia de dicha variable
Frecuencias obtenidas para la variable etnia
.
1 2 3 5 6
24181 36 405 40649 1052704
Se presenta una breve descripción para algunas variables, y se representan gráficamente a través de un diagrama de barras conjunto. En algunos casos las barras de las variables no se aprecian debido a que es bastante pequeña comparada con las otras variables presentes.
contagio
: La barra para el valor Importado
es bastante pequeña comparada con las otras dos debido a que la diferencia de contagios en este rubro es mucho menor; por lo tanto no se aprecia en el gráfico de manera correcta.
ubicacion_caso
: *Corresponde a muertes no relacionadas con COVID-19, aún si eran casos activos **Hay pacientes recuperados para COVID-19, que pueden permanecer en hospitalización por otras comorbilidades.* (Descripción obtenida de la página oficial de datos abiertos.)
estado
: *Corresponde a muertes no relacionadas con COVID-19, aún si eran casos activos **Hay pacientes recuperados para COVID-19, que pueden permanecer en hospitalización por otras comorbilidades.* (Descripción obtenida de la página oficial de datos abiertos.)
recuperado
: Recuperado Fallecido N/A (Vacío). N/A se refiere a los fallecidos no COVID. Pueden haber casos recuperados con ubicación Hospital u Hospital UCI, ya que permanecen en hospitalización por causas diferentes. Los casos con información en blanco en esta columna corresponde a los casos activos (Descripción obtenida de la página oficial de datos abiertos.)
tipo_recuperacion
tipo_recuperacion
: Se refiere a la variable de tipo de recuperación que tiene dos opciones: PCR y tiempo. PCR indica que la persona se encuentra recuperada por segunda muestra, en donde dio negativo para el virus; mientras que tiempo significa que son personas que cumplieron 30 días posteriores al inicio de síntomas o toma de muestras que no tienen síntomas, que no tengan más de 70 años ni que estén hospitalizados. (Descripción obtenida de la página oficial de datos abiertos.)
library(cowplot)
g1 <- ggplot(data = covid, aes(x = contagio)) +
geom_bar(stat = "count", fill = "cornflowerblue") +
stat_count(geom = "text", colour = "black", size = 3.5,
aes(label = ..count..),position=position_stack(vjust=0.7))+
labs(x = "", y = "",
title = "Frecuencia Tipos de Contagio")+
theme_minimal()+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
g2 <- ggplot(data = covid, aes(x = ubicacion_caso)) +
geom_bar(stat = "count", fill = "cornflowerblue") +
stat_count(geom = "text", colour = "black", size = 3.5,
aes(label = ..count..),position=position_stack(vjust=1.1))+
labs(x = "", y = "",
title = "Frecuencia Ubicación Caso")+
theme_minimal()+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
g3 <- ggplot(data = covid, aes(x = estado)) +
geom_bar(stat = "count", fill = "cornflowerblue") +
stat_count(geom = "text", colour = "black", size = 3.5,
aes(label = ..count..),position=position_stack(vjust=1.1))+
labs(x = "", y = "",
title = "Frecuencia de la Variable Estado")+
theme_minimal()+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
g4 <- ggplot(data = covid, aes(x = recuperado)) +
geom_bar(stat = "count", fill = "cornflowerblue") +
stat_count(geom = "text", colour = "black", size = 3.5,
aes(label = ..count..),position=position_stack(vjust=1.1))+
labs(x = "", y = "",
title = "Frecuencia de Recuperado")+
theme_minimal()+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
g5 <- ggplot(data = covid, aes(x = tipo_recuperacion)) +
geom_bar(stat = "count", fill = "cornflowerblue") +
stat_count(geom = "text", colour = "black", size = 3.5,
aes(label = ..count..),position=position_stack(vjust=0.5))+
labs(x = "", y = "",
title = "Frecuencia Tipo de Recuperación")+
theme_minimal()+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
plot_grid(g1, g2, g3, g4, g5, scale = 1)
contagio
covid %>%
ggplot(data = covid, mapping = aes(x = edad, fill = contagio))+
geom_density(alpha = 0.7)+
labs(x = "Edad", y="Densidad", title="Distribución de tipo de contagio por edad")
ubicacion_caso
covid %>%
ggplot(data = covid, mapping = aes(x = edad, fill = ubicacion_caso))+
geom_density(alpha = 0.7)+
labs(x = "Edad", y="Densidad", title="Distribución ubicación de los casos por edad")
estado
covid %>%
ggplot(data = covid, mapping = aes(x = edad, fill = estado))+
geom_density(alpha = 0.7)+
labs(x = "Edad", y="Densidad", title="Distribución del estado por edad")
ciudad1 <- covid %>%
group_by(municipio, departamento, contagio) %>%
summarise(Total = n()) %>%
ungroup()
ciudad11 <- spread(data = ciudad1, key = contagio, value = Total) %>%
datatable(extensions = 'Buttons',
rownames = FALSE,
filter = "top",
selection = "multiple",
options = list(dom = 'Bfrtip',
buttons = c('csv', 'excel', 'pdf')))
ciudad11
ciudad2 <- covid %>%
group_by(municipio, departamento, ubicacion_caso) %>%
summarise(Total = n()) %>%
ungroup()
ciudad22 <- spread(data = ciudad2, key = ubicacion_caso, value = Total) %>%
datatable(extensions = 'Buttons',
rownames = FALSE,
filter = "top",
selection = "multiple",
options = list(dom = 'Bfrtip',
buttons = c('csv', 'excel', 'pdf')))
ciudad22
ciudad3 <- covid %>%
group_by(municipio, departamento, estado) %>%
summarise(Total = n()) %>%
ungroup()
ciudad33 <- spread(data = ciudad3, key = estado, value = Total) %>%
datatable(extensions = 'Buttons',
rownames = FALSE,
filter = "top",
selection = "multiple",
options = list(dom = 'Bfrtip',
buttons = c('csv', 'excel', 'pdf')))
ciudad33
ciudad4 <- covid %>%
group_by(municipio, departamento, recuperado) %>%
summarise(Total = n()) %>%
ungroup()
ciudad44 <- spread(data = ciudad4, key = recuperado, value = Total) %>%
datatable(extensions = 'Buttons',
rownames = FALSE,
filter = "top",
selection = "multiple",
options = list(dom = 'Bfrtip',
buttons = c('csv', 'excel', 'pdf')))
ciudad44
ciudad5 <- covid %>%
group_by(municipio, departamento, tipo_recuperacion) %>%
summarise(Total = n()) %>%
ungroup()
ciudad55 <- spread(data = ciudad5, key = tipo_recuperacion, value = Total) %>%
datatable(extensions = 'Buttons',
rownames = FALSE,
filter = "top",
selection = "multiple",
options = list(dom = 'Bfrtip',
buttons = c('csv', 'excel', 'pdf')))
ciudad55