El objetivo de kable
y kableExtra
es ayudar a construir tablas complejas comunes y manipular estilos para ellas. Básicamente puede agregar “capas” a una salida de kable de una manera similar como lo hacemos con ggplot2
y plotly
, solamente que la sintaxis cambia de +
a %>%
.
Cuando se usa kable()
, si no se especifica el formato de salida, por defecto genera una markdown table, o podemos especificar los siguientes valores posibles:
kable(Tabla/Matriz/Data Frame, format = "latex")
kable(Tabla/Matriz/Data Frame, format = "html")
kable(Tabla/Matriz/Data Frame, format = "pandoc")
kable(Tabla/Matriz/Data Frame, format = "rst")
Es de mucha utilidad cambiar de formato markdown ya que este no admite tablas complejas. Por ejemplo, si desea tener una tabla de encabezado de doble fila, markdown no puede proporcionar la funcionalidad que necesita.
También se puede definir una opción global al principio usando la siguiente sentencia, para no repetir el paso cada vez.
mpg | cyl | disp | hp | drat | wt | qsec | |
---|---|---|---|---|---|---|---|
Mazda RX4 | 21.0 | 6 | 160 | 110 | 3.90 | 2.620 | 16.46 |
Mazda RX4 Wag | 21.0 | 6 | 160 | 110 | 3.90 | 2.875 | 17.02 |
Datsun 710 | 22.8 | 4 | 108 | 93 | 3.85 | 2.320 | 18.61 |
Hornet 4 Drive | 21.4 | 6 | 258 | 110 | 3.08 | 3.215 | 19.44 |
Hornet Sportabout | 18.7 | 8 | 360 | 175 | 3.15 | 3.440 | 17.02 |
Valiant | 18.1 | 6 | 225 | 105 | 2.76 | 3.460 | 20.22 |
Duster 360 | 14.3 | 8 | 360 | 245 | 3.21 | 3.570 | 15.84 |
Cuando se utiliza en una tabla HTML kable_styling ()
se aplica automáticamente el tema de arranque de Twitter a la tabla.
mpg | cyl | disp | hp | drat | wt | qsec | |
---|---|---|---|---|---|---|---|
Mazda RX4 | 21.0 | 6 | 160 | 110 | 3.90 | 2.620 | 16.46 |
Mazda RX4 Wag | 21.0 | 6 | 160 | 110 | 3.90 | 2.875 | 17.02 |
Datsun 710 | 22.8 | 4 | 108 | 93 | 3.85 | 2.320 | 18.61 |
Hornet 4 Drive | 21.4 | 6 | 258 | 110 | 3.08 | 3.215 | 19.44 |
Hornet Sportabout | 18.7 | 8 | 360 | 175 | 3.15 | 3.440 | 17.02 |
Valiant | 18.1 | 6 | 225 | 105 | 2.76 | 3.460 | 20.22 |
Duster 360 | 14.3 | 8 | 360 | 245 | 3.21 | 3.570 | 15.84 |
kable_styling ()
ofrece otras formas de personalizar el aspecto de una tabla HTML.
El argumento bootstrap_options
tiene las siguientes opciones para elegir.
striped
Para sombrear las filas, de forma intercalada, de color gris.bordered
Para poner bordes por cada fila y columna.hover
Para agregar un efecto de resaltado al pasar el mouse por una fila.condensed
Para condesar/reducir el espacio entre filas. Es decir que tiene una altura de fila ligeramente más corta.responsive
Tiene el mismo aspecto que las demás en una pantalla grande. sin embargo, en una pantalla pequeña como el teléfono, se pueden desplazar horizontalmente.Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")
kable(Tabla) %>%
kable_styling(bootstrap_options = Form.Basic)
mpg | cyl | disp | hp | drat | wt | qsec | |
---|---|---|---|---|---|---|---|
Mazda RX4 | 21.0 | 6 | 160 | 110 | 3.90 | 2.620 | 16.46 |
Mazda RX4 Wag | 21.0 | 6 | 160 | 110 | 3.90 | 2.875 | 17.02 |
Datsun 710 | 22.8 | 4 | 108 | 93 | 3.85 | 2.320 | 18.61 |
Hornet 4 Drive | 21.4 | 6 | 258 | 110 | 3.08 | 3.215 | 19.44 |
Hornet Sportabout | 18.7 | 8 | 360 | 175 | 3.15 | 3.440 | 17.02 |
Valiant | 18.1 | 6 | 225 | 105 | 2.76 | 3.460 | 20.22 |
Duster 360 | 14.3 | 8 | 360 | 245 | 3.21 | 3.570 | 15.84 |
F
el parámetro full_width
.mpg | cyl | disp | hp | drat | wt | qsec | |
---|---|---|---|---|---|---|---|
Mazda RX4 | 21.0 | 6 | 160 | 110 | 3.90 | 2.620 | 16.46 |
Mazda RX4 Wag | 21.0 | 6 | 160 | 110 | 3.90 | 2.875 | 17.02 |
Datsun 710 | 22.8 | 4 | 108 | 93 | 3.85 | 2.320 | 18.61 |
Hornet 4 Drive | 21.4 | 6 | 258 | 110 | 3.08 | 3.215 | 19.44 |
Hornet Sportabout | 18.7 | 8 | 360 | 175 | 3.15 | 3.440 | 17.02 |
Valiant | 18.1 | 6 | 225 | 105 | 2.76 | 3.460 | 20.22 |
Duster 360 | 14.3 | 8 | 360 | 245 | 3.21 | 3.570 | 15.84 |
full_width = F
. Puede elegir alinear la tabla en center, left o right.mpg | cyl | disp | hp | drat | wt | qsec | |
---|---|---|---|---|---|---|---|
Mazda RX4 | 21.0 | 6 | 160 | 110 | 3.90 | 2.620 | 16.46 |
Mazda RX4 Wag | 21.0 | 6 | 160 | 110 | 3.90 | 2.875 | 17.02 |
Datsun 710 | 22.8 | 4 | 108 | 93 | 3.85 | 2.320 | 18.61 |
Hornet 4 Drive | 21.4 | 6 | 258 | 110 | 3.08 | 3.215 | 19.44 |
Hornet Sportabout | 18.7 | 8 | 360 | 175 | 3.15 | 3.440 | 17.02 |
Valiant | 18.1 | 6 | 225 | 105 | 2.76 | 3.460 | 20.22 |
Duster 360 | 14.3 | 8 | 360 | 245 | 3.21 | 3.570 | 15.84 |
Además de estas tres opciones comunes, también puede ajustar el texto alrededor de la tabla usando las opciones float_left o float_right.
kable(Tabla) %>%
kable_styling(bootstrap_options = Form.Basic, full_width = F,
position = "float_right")
mpg | cyl | disp | hp | drat | wt | qsec | |
---|---|---|---|---|---|---|---|
Mazda RX4 | 21.0 | 6 | 160 | 110 | 3.90 | 2.620 | 16.46 |
Mazda RX4 Wag | 21.0 | 6 | 160 | 110 | 3.90 | 2.875 | 17.02 |
Datsun 710 | 22.8 | 4 | 108 | 93 | 3.85 | 2.320 | 18.61 |
Hornet 4 Drive | 21.4 | 6 | 258 | 110 | 3.08 | 3.215 | 19.44 |
Hornet Sportabout | 18.7 | 8 | 360 | 175 | 3.15 | 3.440 | 17.02 |
Valiant | 18.1 | 6 | 225 | 105 | 2.76 | 3.460 | 20.22 |
Duster 360 | 14.3 | 8 | 360 | 245 | 3.21 | 3.570 | 15.84 |
Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo Texto de ejemplo.
font_size
.mpg | cyl | disp | hp | drat | wt | qsec | |
---|---|---|---|---|---|---|---|
Mazda RX4 | 21.0 | 6 | 160 | 110 | 3.90 | 2.620 | 16.46 |
Mazda RX4 Wag | 21.0 | 6 | 160 | 110 | 3.90 | 2.875 | 17.02 |
Datsun 710 | 22.8 | 4 | 108 | 93 | 3.85 | 2.320 | 18.61 |
Hornet 4 Drive | 21.4 | 6 | 258 | 110 | 3.08 | 3.215 | 19.44 |
Hornet Sportabout | 18.7 | 8 | 360 | 175 | 3.15 | 3.440 | 17.02 |
Valiant | 18.1 | 6 | 225 | 105 | 2.76 | 3.460 | 20.22 |
Duster 360 | 14.3 | 8 | 360 | 245 | 3.21 | 3.570 | 15.84 |
Tabla.Texto <- data.frame(REINO = c("Monera", "Hongos", "Vegetal"),
DESCRIPCION = c("Estos seres son los más antiguos. Son organismos formados por una sola célula (unicelulares) y de estructura muy simple.", "Estos se encuentran en el suelo, el agua, los organismos en descomposición o en la piel humana. Entre ellos están los mohos, las levaduras y las setas.", "Son organismos formados por más de una sola célula (pluricelulares) que realzan la fotosíntesis; gracias a la clorofila captan la energía solar."))
kable(Tabla.Texto) %>%
kable_styling(full_width = F) %>%
column_spec(1, bold = T,border_left = T, border_right = T,
background = "#EAB822") %>%
column_spec(2, width = "30em", color = "white", background = "#E0301E")
REINO | DESCRIPCION |
---|---|
Monera | Estos seres son los más antiguos. Son organismos formados por una sola célula (unicelulares) y de estructura muy simple. |
Hongos | Estos se encuentran en el suelo, el agua, los organismos en descomposición o en la piel humana. Entre ellos están los mohos, las levaduras y las setas. |
Vegetal | Son organismos formados por más de una sola célula (pluricelulares) que realzan la fotosíntesis; gracias a la clorofila captan la energía solar. |
kable(Tabla) %>%
kable_styling("striped", full_width = F) %>%
column_spec(1, bold = T) %>%
row_spec(2:6, bold = T, color = "white", background = "#F63632")
mpg | cyl | disp | hp | drat | wt | qsec | |
---|---|---|---|---|---|---|---|
Mazda RX4 | 21.0 | 6 | 160 | 110 | 3.90 | 2.620 | 16.46 |
Mazda RX4 Wag | 21.0 | 6 | 160 | 110 | 3.90 | 2.875 | 17.02 |
Datsun 710 | 22.8 | 4 | 108 | 93 | 3.85 | 2.320 | 18.61 |
Hornet 4 Drive | 21.4 | 6 | 258 | 110 | 3.08 | 3.215 | 19.44 |
Hornet Sportabout | 18.7 | 8 | 360 | 175 | 3.15 | 3.440 | 17.02 |
Valiant | 18.1 | 6 | 225 | 105 | 2.76 | 3.460 | 20.22 |
Duster 360 | 14.3 | 8 | 360 | 245 | 3.21 | 3.570 | 15.84 |
kable(Tabla) %>%
kable_styling("striped", full_width = F) %>%
row_spec(0, monospace = T, color = "#27BD74", angle = -45)
mpg | cyl | disp | hp | drat | wt | qsec | |
---|---|---|---|---|---|---|---|
Mazda RX4 | 21.0 | 6 | 160 | 110 | 3.90 | 2.620 | 16.46 |
Mazda RX4 Wag | 21.0 | 6 | 160 | 110 | 3.90 | 2.875 | 17.02 |
Datsun 710 | 22.8 | 4 | 108 | 93 | 3.85 | 2.320 | 18.61 |
Hornet 4 Drive | 21.4 | 6 | 258 | 110 | 3.08 | 3.215 | 19.44 |
Hornet Sportabout | 18.7 | 8 | 360 | 175 | 3.15 | 3.440 | 17.02 |
Valiant | 18.1 | 6 | 225 | 105 | 2.76 | 3.460 | 20.22 |
Duster 360 | 14.3 | 8 | 360 | 245 | 3.21 | 3.570 | 15.84 |
Esta es una breve introducción al paquete de tables
. Dicho paquete está inspirado en la función de \(\color{DarkBlue} {\texttt{SAS}}\) \(\color{Blue} {\texttt{PROC TABULATE}}\), esto con el fin de crear tablas bonitas en documentos de Sweave.
Para presentar una tabla en un documento web con la librería tables
es necesario realizar principalmente dos cosas:
Advertencia: Para una correcta visualización de las tablas en formato HTML debe poner en el chunk la expresión \(\color{Magenta} {\texttt{results = 'asis'}}\).
A continuación, mediante un ejemplo se expone la sintaxis básica que debe seguir para obtener resultados impresionantes y de una manera muy sencilla.
TableIris <- tabular( (Species + 1) ~ # (1)
(n = 1) + Format(digits = 2) * # (2)
(Sepal.Length + Sepal.Width) * # (3)
(mean + sd), data = iris) # (4)
tables::toHTML(TableIris)
Sepal.Length | Sepal.Width | ||||
---|---|---|---|---|---|
Species | n | mean | sd | mean | sd |
setosa | 50 | 5.01 | 0.35 | 3.43 | 0.38 |
versicolor | 50 | 5.94 | 0.52 | 2.77 | 0.31 |
virginica | 50 | 6.59 | 0.64 | 2.97 | 0.32 |
All | 150 | 5.84 | 0.83 | 3.06 | 0.44 |
mean()
y sd()
. Los valores en la tabla serán el resultado de aplicar esas funciones a las dos variables diferentes y en cada nivel del factor del dataset especificado.Otros aspectos que considerar son:
justification
: Da justificación de texto predeterminada para usar al imprimir. Los valores reconocidos son “n”, “l”, “c”, “r”, que representan ninguna, izquierda, centro y derecha respectivamente. Para LATEX, la justificación se especifica mediante la función table_options().Hmisc::latex()
, tables::latex.tabular()
o tables::toLatex()
.library(datasauRus)
Data <- as.data.frame(datasauRus::datasaurus_dozen)
Data$dataset <- factor(Data$dataset)
Tabla <- tabular( ( DATASET = dataset ) ~
(n = 1) + Format(digits = 2) *
( (Coordenada_X = x) + (Coordenada_Y = y) ) *
( (Media = mean) + (Sd = sd) + (Mínimo = min) + (Máximo = max) + (Mediana = median) ),
data = Data)
tables::toHTML(Tabla, options = htmloptions(HTMLcaption = "ANÁLISIS DESCRIPTIVO PRELIMINAR",
justification = "c",
pad = TRUE ))
Coordenada_X | Coordenada_Y | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
DATASET | n | Media | Sd | Mínimo | Máximo | Mediana | Media | Sd | Mínimo | Máximo | Mediana |
away | 142 | 54.266 | 16.770 | 15.561 | 91.640 | 53.340 | 47.835 | 26.940 | 0.015 | 97.476 | 47.535 |
bullseye | 142 | 54.269 | 16.769 | 19.288 | 91.736 | 53.842 | 47.831 | 26.936 | 9.692 | 85.876 | 47.383 |
circle | 142 | 54.267 | 16.760 | 21.864 | 85.665 | 54.023 | 47.838 | 26.930 | 16.327 | 85.578 | 51.025 |
dino | 142 | 54.263 | 16.765 | 22.308 | 98.205 | 53.333 | 47.832 | 26.935 | 2.949 | 99.487 | 46.026 |
dots | 142 | 54.260 | 16.768 | 25.444 | 77.954 | 50.977 | 47.840 | 26.930 | 15.772 | 94.249 | 51.299 |
h_lines | 142 | 54.261 | 16.766 | 22.004 | 98.288 | 53.070 | 47.830 | 26.940 | 10.464 | 90.459 | 50.474 |
high_lines | 142 | 54.269 | 16.767 | 17.893 | 96.081 | 54.169 | 47.835 | 26.940 | 14.914 | 87.152 | 32.499 |
slant_down | 142 | 54.268 | 16.767 | 18.109 | 95.593 | 53.135 | 47.836 | 26.936 | 0.304 | 99.644 | 46.401 |
slant_up | 142 | 54.266 | 16.769 | 20.210 | 95.261 | 54.261 | 47.831 | 26.939 | 5.646 | 99.580 | 45.292 |
star | 142 | 54.267 | 16.769 | 27.025 | 86.436 | 56.535 | 47.840 | 26.930 | 14.366 | 92.215 | 50.111 |
v_lines | 142 | 54.270 | 16.770 | 30.450 | 89.505 | 50.363 | 47.837 | 26.938 | 2.735 | 99.695 | 47.114 |
wide_lines | 142 | 54.267 | 16.770 | 27.440 | 77.916 | 64.550 | 47.832 | 26.938 | 0.217 | 99.284 | 46.279 |
x_shape | 142 | 54.260 | 16.770 | 31.107 | 85.446 | 47.136 | 47.840 | 26.930 | 4.578 | 97.838 | 39.876 |
Para mayor información del uso del paquete y de las demás funciones que tiene incorporadas puede consultar en la ayuda.
https://rfortherestofus.com/2019/11/how-to-make-beautiful-tables-in-r/
Este obra cuyo autor es Jeison Mauricio Alarcón Becerra está bajo una licencia de Reconocimiento-NoComercial-SinObraDerivada 4.0 Internacional de Creative Commons.
Creado a partir de la obra en https://rpubs.com/JeisonAlarcon.