En secciones anteriores, los resultados aparecen tabulados en un formato básico, poco apropiados para una publicación final. En esta sección estaremos utilizando paquetes que permiten la construcción de tablas con más flexibilidad y resultados más elegantes.
Hay al menos una docena de paquetes especializados para crear tablas; estaremos trabajando con dos de ellos: kableExtra y gt. A continuación otros más:
Al finalizar esta sección podrás construir tablas de resultados en diversos formatos, usando el paquete kableExtra
El paquete kableExtra provee diversos formatos de tablas y funciones para modificarlas. A continuación, tres formatos diferentes con los mismos datos.
library(kableExtra)
covidPR <- read.csv("data/covid-sex.csv")
# formato básico
kbl(covidPR, caption = "Table 1. CoviD-19 deaths by sex and age groups. Data up to May 31, 2021")
date | age | All.Sexes | Female | Male |
---|---|---|---|---|
2020-01-31 | All Ages | 0 | 0 | 0 |
2020-02-29 | All Ages | 0 | 0 | 0 |
2020-03-31 | All Ages | 21 | 10 | 11 |
2020-04-30 | All Ages | 78 | 31 | 47 |
2020-05-31 | All Ages | 35 | 15 | 20 |
2020-06-30 | All Ages | 16 | NA | 13 |
2020-07-31 | All Ages | 91 | 27 | 64 |
2020-08-31 | All Ages | 197 | 84 | 113 |
2020-09-30 | All Ages | 233 | 94 | 139 |
2020-10-31 | All Ages | 173 | 79 | 94 |
2020-11-30 | All Ages | 342 | 144 | 198 |
2020-12-31 | All Ages | 436 | 179 | 257 |
2021-01-31 | All Ages | 244 | 121 | 123 |
2021-02-28 | All Ages | 131 | 62 | 69 |
2021-03-31 | All Ages | 68 | 37 | 31 |
2021-04-30 | All Ages | 195 | 84 | 111 |
2021-05-31 | All Ages | 170 | 73 | 97 |
2021-06-12 | All Ages | NA | 0 | NA |
# formato kable_classic
kbl(covidPR, caption = "Table 1. CoviD-19 deaths by sex and age groups. Data up to May 31, 2021") %>%
kable_classic("striped", full_width = F) %>%
add_header_above(c("", "", "Sex" = 3))
Sex
|
||||
---|---|---|---|---|
date | age | All.Sexes | Female | Male |
2020-01-31 | All Ages | 0 | 0 | 0 |
2020-02-29 | All Ages | 0 | 0 | 0 |
2020-03-31 | All Ages | 21 | 10 | 11 |
2020-04-30 | All Ages | 78 | 31 | 47 |
2020-05-31 | All Ages | 35 | 15 | 20 |
2020-06-30 | All Ages | 16 | NA | 13 |
2020-07-31 | All Ages | 91 | 27 | 64 |
2020-08-31 | All Ages | 197 | 84 | 113 |
2020-09-30 | All Ages | 233 | 94 | 139 |
2020-10-31 | All Ages | 173 | 79 | 94 |
2020-11-30 | All Ages | 342 | 144 | 198 |
2020-12-31 | All Ages | 436 | 179 | 257 |
2021-01-31 | All Ages | 244 | 121 | 123 |
2021-02-28 | All Ages | 131 | 62 | 69 |
2021-03-31 | All Ages | 68 | 37 | 31 |
2021-04-30 | All Ages | 195 | 84 | 111 |
2021-05-31 | All Ages | 170 | 73 | 97 |
2021-06-12 | All Ages | NA | 0 | NA |
# formato kable_styling
kbl(covidPR, caption = "Table 1. CoviD-19 deaths by sex and age groups. Data up to May 31, 2021") %>%
kable_styling("striped", full_width = F) %>%
add_header_above(c("", "", "Sex" = 3))
date | age | All.Sexes | Female | Male |
---|---|---|---|---|
2020-01-31 | All Ages | 0 | 0 | 0 |
2020-02-29 | All Ages | 0 | 0 | 0 |
2020-03-31 | All Ages | 21 | 10 | 11 |
2020-04-30 | All Ages | 78 | 31 | 47 |
2020-05-31 | All Ages | 35 | 15 | 20 |
2020-06-30 | All Ages | 16 | NA | 13 |
2020-07-31 | All Ages | 91 | 27 | 64 |
2020-08-31 | All Ages | 197 | 84 | 113 |
2020-09-30 | All Ages | 233 | 94 | 139 |
2020-10-31 | All Ages | 173 | 79 | 94 |
2020-11-30 | All Ages | 342 | 144 | 198 |
2020-12-31 | All Ages | 436 | 179 | 257 |
2021-01-31 | All Ages | 244 | 121 | 123 |
2021-02-28 | All Ages | 131 | 62 | 69 |
2021-03-31 | All Ages | 68 | 37 | 31 |
2021-04-30 | All Ages | 195 | 84 | 111 |
2021-05-31 | All Ages | 170 | 73 | 97 |
2021-06-12 | All Ages | NA | 0 | NA |
Cuando una tabla requiere más ajustes y modificaciones, kableExtra puede resultar un poco confuso para trabajar.
# leer los datos de archivo externo
ca_ratas <- read.csv("data/calcio-ratas.csv")
# activar paquete doBy para aplicar función por grupos
library(doBy)
descriptivas <- summaryBy(caplasma ~ list(hormona,sexo),
data = ca_ratas,
FUN = function(x) {
c(media = mean(x),
var = var(x),
de = sd(x),
es = sd(x)/sqrt(length(x)),
CV = (sd(x)/mean(x))*100) })
# resultados sin formato
descriptivas
## hormona sexo caplasma.media caplasma.var caplasma.de caplasma.es
## 1 no hembra 14.88 17.107 4.136061 1.849703
## 2 no macho 12.12 18.042 4.247588 1.899579
## 3 si hembra 32.52 21.817 4.670867 2.088875
## 4 si macho 27.78 18.382 4.287423 1.917394
## caplasma.CV
## 1 27.79611
## 2 35.04610
## 3 14.36306
## 4 15.43349
# creación de tabla con kableExtra
kbl(descriptivas, caption = "Table 2. Niveles de calcio plasmático en ratas hembras y machos tratadas con estrógeno o no. n = 5",
col.names = c("Hormona", "Sexo", "Media", "Varianza", "Desv. Estándar", "Error Estándar", "CV %"),
digits = c(2,2,2,2,2)) %>%
kable_classic(full_width = T) %>%
add_header_above(c("Tratamientos" = 2, "Estadísticos Ca-plasma, mg/dl" = 5))
Tratamientos
|
Estadísticos Ca-plasma, mg/dl
|
|||||
---|---|---|---|---|---|---|
Hormona | Sexo | Media | Varianza | Desv. Estándar | Error Estándar | CV % |
no | hembra | 14.88 | 17.11 | 4.14 | 1.85 | 27.80 |
no | macho | 12.12 | 18.04 | 4.25 | 1.90 | 35.05 |
si | hembra | 32.52 | 21.82 | 4.67 | 2.09 | 14.36 |
si | macho | 27.78 | 18.38 | 4.29 | 1.92 | 15.43 |
Al finalizar esta sección podrás construir tablas de resultados en diversos formatos, usando el paquete gt
Este paquete provee las funcionalidades de kableExtra, pero se aplican de una manera más organizada.
library(gt)
gt(descriptivas) %>%
tab_header(
title = "Table 2. Niveles de calcio plasmático en ratas hembra y macho tratadas con estrógeno o no",
subtitle = "Cálculos mediante función en doBy, n = 5"
) %>%
cols_label(
hormona = html("Hormona"),
sexo = html("Sexo"),
caplasma.media = html("Media"),
caplasma.var = html("Varianza"),
caplasma.de = html("Desv. Estándar"),
caplasma.es = html("Error Estándar"),
caplasma.CV = html("Coef. Var. %")
) %>%
tab_spanner(
label = "Tratamientos",
columns = vars(hormona, sexo)
) %>%
tab_spanner(
label = "Estadísticos",
columns = vars(caplasma.media, caplasma.var, caplasma.de, caplasma.es, caplasma.CV)
) %>%
fmt_number(
columns = vars(caplasma.media, caplasma.var, caplasma.de, caplasma.es, caplasma.CV),
decimals = 2
)
## Warning: `columns = vars(...)` has been deprecated in gt 0.3.0:
## * please use `columns = c(...)` instead
## Warning: `columns = vars(...)` has been deprecated in gt 0.3.0:
## * please use `columns = c(...)` instead
## Warning: `columns = vars(...)` has been deprecated in gt 0.3.0:
## * please use `columns = c(...)` instead
## Warning: `columns = vars(...)` has been deprecated in gt 0.3.0:
## * please use `columns = c(...)` instead
Table 2. Niveles de calcio plasmático en ratas hembra y macho tratadas con estrógeno o no | ||||||
---|---|---|---|---|---|---|
Cálculos mediante función en doBy, n = 5 | ||||||
Tratamientos | Estadísticos | |||||
Hormona | Sexo | Media | Varianza | Desv. Estándar | Error Estándar | Coef. Var. % |
no | hembra | 14.88 | 17.11 | 4.14 | 1.85 | 27.80 |
no | macho | 12.12 | 18.04 | 4.25 | 1.90 | 35.05 |
si | hembra | 32.52 | 21.82 | 4.67 | 2.09 | 14.36 |
si | macho | 27.78 | 18.38 | 4.29 | 1.92 | 15.43 |