Librería

gt

Autor principal

Rich Iannone

Datos de muestra

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"))

Temas de gtExtras

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

Sparklines integrados

Species N Media Sepal.Length
setosa 50 5.01 5.0
versicolor 50 5.94 5.7
virginica 50 6.59 5.9

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)
MASTER - STATISTICS DOT COM

Master Statistics

Aprende estadística desde lo básico hasta técnicas avanzadas, explicado con claridad

Ir al sitio
R PACKAGES IO

R Packages

Explora y descubre miles de paquetes, funciones y datasets de R

Ir al sitio

También te puede interesar