gt crea tablas de calidad editorial con una gramatica similar a ggplot2: empieza con los datos, pasalos a gt() y anade capas para formato, estilo y anotaciones. Usaremos el dataset iris a lo largo del post.
# install.packages("gt")
library(gt)
head(iris, 6)
gt()
Pasa cualquier data frame a gt() para obtener inmediatamente una tabla HTML formateada. Los nombres de columna se convierten en cabeceras y los tipos de datos se detectan automaticamente.
# install.packages("gt")
library(gt)
head(iris, 6) |>
gt()
| Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
tab_header()
| El dataset iris | ||||
| Medidas de sepalo y petalo en centimetros | ||||
| Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
Anade un titulo y subtitulo encima de la tabla con tab_header(). Ambos argumentos aceptan texto plano o los envoltorios md() y html() para formato markdown o HTML.
# install.packages("gt")
library(gt)
head(iris, 6) |>
gt() |>
tab_header(
title = "El dataset iris",
subtitle = "Medidas de sepalo y petalo en centimetros"
)
fmt_number()
fmt_number() formatea columnas numericas: controla los decimales, separadores de miles y sufijos. Usa where(is.numeric) de tidyselect para seleccionar todas las columnas numericas a la vez.
# install.packages("gt")
library(gt)
head(iris, 6) |>
gt() |>
fmt_number(
columns = where(is.numeric),
decimals = 1
)
| Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
data_color()
| Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
data_color() aplica una escala de color a una o mas columnas. Pasa cualquier nombre de paleta del paquete paletteer o un vector de colores hex a palette. Los valores se mapean al rango de colores automaticamente.
# install.packages("gt")
library(gt)
head(iris, 6) |>
gt() |>
data_color(
columns = where(is.numeric),
palette = "Blues"
)
cols_label()
Renombra las cabeceras de columna sin modificar los datos usando cols_label(). Pasa pares nombre_original = "Nueva etiqueta". Envuelve la etiqueta en md() para usar markdown o en html() para HTML.
# install.packages("gt")
library(gt)
head(iris, 6) |>
gt() |>
cols_label(
Sepal.Length = "Sepal L.",
Sepal.Width = "Sepal W.",
Petal.Length = "Petal L.",
Petal.Width = "Petal W."
)
| Sepal L. | Sepal W. | Petal L. | Petal W. | Species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
tab_spanner()
| Sepalo | Petalo | Species | ||
|---|---|---|---|---|
| Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | |
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
tab_spanner() anade una etiqueta que abarca varias columnas, util para agrupar medidas relacionadas. Llamalo una vez por grupo y usa los selectores de tidyselect en columns para seleccionar las columnas objetivo.
# install.packages("gt")
library(gt)
head(iris, 6) |>
gt() |>
tab_spanner(label = "Sepalo",
columns = starts_with("Sepal")) |>
tab_spanner(label = "Petalo",
columns = starts_with("Petal"))
gtExtras incluye temas listos para usar que aplican un estilo visual completo en una sola llamada. Las opciones incluyen gt_theme_excel(), gt_theme_538(), gt_theme_espn(), gt_theme_dark() y otros.
# install.packages("gtExtras")
library(gtExtras)
head(iris, 6) |>
gt() |>
gt_theme_excel()
| Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
| Species | N | Media | Sepal.Length |
|---|---|---|---|
| setosa | 50 | 5.01 | |
| versicolor | 50 | 5.94 | |
| virginica | 50 | 6.59 |
gt_plt_sparkline() incrusta un mini grafico de lineas dentro de una celda. La columna debe ser una columna de listas donde cada celda contiene un vector numerico. Usa dplyr::summarise() con list() para construirla.
# install.packages("gtExtras")
library(dplyr)
library(gtExtras)
iris |>
group_by(Species) |>
summarise(
N = n(),
Sepal.Length = list(Sepal.Length),
.groups = "drop"
) |>
gt() |>
gt_plt_sparkline(Sepal.Length)
Aprende estadística desde lo básico hasta técnicas avanzadas, explicado con claridad
Ir al sitio
También te puede interesar