Skip to content
Back to skills

Generate Statistical Tables

ASecurity

Generar tablas estadísticas listas para publicación usando gt, kableExtra o flextable. Cubre estadísticos descriptivos, resultados de regresión, tablas ANOVA, matrices de correlación y formato APA. Usar al crear tablas de estadísticos descriptivos, formatear resultados de regresión o ANOVA, construir matrices de correlación, producir tablas estilo APA para artículos académicos o generar tablas para documentos Quarto y R Markdown.

  • 31 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 29, 2026
ai-agentsrustgobash

Security analysis

A100/100

Scanned May 29, 2026

npx -y skills add pjt222/agent-almanac --skill generate-statistical-tables --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Generate Statistical Tables?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Generate Statistical Tables
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/pjt222-generate-statistical-tables/badge)](https://www.skillsdirectory.com/skills/pjt222-generate-statistical-tables)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: generate-statistical-tables
description: >
  Generar tablas estadísticas listas para publicación usando gt, kableExtra
  o flextable. Cubre estadísticos descriptivos, resultados de regresión,
  tablas ANOVA, matrices de correlación y formato APA. Usar al crear tablas
  de estadísticos descriptivos, formatear resultados de regresión o ANOVA,
  construir matrices de correlación, producir tablas estilo APA para artículos
  académicos o generar tablas para documentos Quarto y R Markdown.
license: MIT
allowed-tools: Read Write Edit Bash Grep Glob
metadata:
  author: Philipp Thoss
  version: "1.0"
  domain: reporting
  complexity: intermediate
  language: R
  tags: r, tables, gt, statistics, publication
  locale: es
  source_locale: en
  source_commit: 6f65f316
  translator: claude-sonnet-4-6
  translation_date: 2026-03-16
---

# Generar Tablas Estadísticas

Crear tablas estadísticas listas para publicación para informes y manuscritos.

## Cuándo Usar

- Crear tablas de estadísticos descriptivos
- Formatear resultados de regresión o ANOVA
- Construir matrices de correlación
- Producir tablas estilo APA para artículos académicos
- Generar tablas para documentos Quarto/R Markdown

## Entradas

- **Requerido**: Resultados de análisis estadístico (objetos de modelo, datos resumidos)
- **Requerido**: Formato de salida (HTML, PDF, Word)
- **Opcional**: Guía de estilo (APA, específica de revista)
- **Opcional**: Esquema de numeración de tablas

## Procedimiento

### Paso 1: Elegir Paquete de Tablas

| Paquete | Mejor para | Formatos |
|---------|----------|---------|
| `gt` | HTML, propósito general | HTML, PDF, Word |
| `kableExtra` | Documentos LaTeX/PDF | PDF, HTML |
| `flextable` | Documentos Word | Word, PDF, HTML |
| `gtsummary` | Resúmenes clínicos/estadísticos | Todos vía gt/flextable |

**Esperado:** Un paquete de tablas seleccionado basado en el formato de salida y caso de uso. El paquete elegido está instalado y es cargable.

**En caso de fallo:** Si el paquete requerido no está instalado, ejecutar `install.packages("gt")` (o el paquete apropiado). Para `gtsummary`, tanto `gt` como `gtsummary` deben estar instalados.

### Paso 2: Tabla de Estadísticos Descriptivos

```r
library(gt)

descriptives <- data |>
  group_by(group) |>
  summarise(
    n = n(),
    M = mean(score, na.rm = TRUE),
    SD = sd(score, na.rm = TRUE),
    Min = min(score, na.rm = TRUE),
    Max = max(score, na.rm = TRUE)
  )

gt(descriptives) |>
  tab_header(
    title = "Table 1",
    subtitle = "Descriptive Statistics by Group"
  ) |>
  fmt_number(columns = c(M, SD), decimals = 2) |>
  fmt_number(columns = c(Min, Max), decimals = 1) |>
  cols_label(
    group = "Group",
    n = md("*n*"),
    M = md("*M*"),
    SD = md("*SD*")
  )
```

**Esperado:** Un objeto tabla `gt` con medias, desviaciones estándar y conteos formateados agrupados por categoría. Los encabezados de columna usan notación estadística apropiada (*M*, *SD*, *n* en cursiva).

**En caso de fallo:** Si `group_by()` produce resultados inesperados, verificar que la variable de agrupación exista y tenga los niveles esperados. Si `fmt_number()` produce un error, asegurar que las columnas objetivo contengan datos numéricos.

### Paso 3: Tabla de Resultados de Regresión

```r
model <- lm(outcome ~ predictor1 + predictor2 + predictor3, data = data)

library(gtsummary)

tbl_regression(model) |>
  bold_p() |>
  add_glance_source_note(
    include = c(r.squared, adj.r.squared, nobs)
  ) |>
  modify_header(label = "**Predictor**") |>
  modify_caption("Table 2: Regression Results")
```

**Esperado:** Una tabla de regresión `gtsummary` con valores p en negrita, estadísticos de ajuste del modelo (R-cuadrado, N) en una nota al pie, y un subtítulo descriptivo.

**En caso de fallo:** Si `tbl_regression()` falla, verificar que la entrada sea un objeto de modelo (p. ej., `lm`, `glm`). Si `add_glance_source_note()` produce errores, verificar que `broom` pueda procesar el modelo: `broom::glance(model)`.

### Paso 4: Matriz de Correlación

```r
library(gt)

cor_matrix <- cor(data[, c("var1", "var2", "var3", "var4")],
                  use = "pairwise.complete.obs")

# Format lower triangle
cor_matrix[upper.tri(cor_matrix)] <- NA

as.data.frame(cor_matrix) |>
  tibble::rownames_to_column("Variable") |>
  gt() |>
  fmt_number(decimals = 2) |>
  sub_missing(missing_text = "") |>
  tab_header(title = "Table 3", subtitle = "Correlation Matrix")
```

**Esperado:** Una matriz de correlación de triángulo inferior renderizada como tabla `gt` con triángulo superior en blanco, dos decimales y un subtítulo claro.

**En caso de fallo:** Si `sub_missing()` no oculta el triángulo superior, verificar que los valores `NA` se establecieron correctamente con `cor_matrix[upper.tri(cor_matrix)] <- NA`. Si las variables no son numéricas, `cor()` fallará; filtrar solo columnas numéricas primero.

### Paso 5: Tabla ANOVA

```r
aov_result <- aov(score ~ group * condition, data = data)

library(gtsummary)

tbl_anova <- broom::tidy(aov_result) |>
  gt() |>
  fmt_number(columns = c(sumsq, meansq, statistic), decimals = 2) |>
  fmt_number(columns = p.value, decimals = 3) |>
  cols_label(
    term = "Source",
    df = md("*df*"),
    sumsq = md("*SS*"),
    meansq = md("*MS*"),
    statistic = md("*F*"),
    p.value = md("*p*")
  ) |>
  tab_header(title = "Table 4", subtitle = "ANOVA Results")
```

**Esperado:** Una tabla ANOVA formateada con columnas Fuente, *df*, *SS*, *MS*, *F* y *p*. Los términos de interacción están claramente etiquetados y los valores p están formateados a tres decimales.

**En caso de fallo:** Si `broom::tidy(aov_result)` produce columnas inesperadas, verificar que el modelo sea un objeto `aov`. Para sumas de cuadrados Tipo III, usar `car::Anova(model, type = 3)` en lugar de `aov()` base.

### Paso 6: Guardar Tablas

```r
# Save as HTML
gtsave(my_table, "table1.html")

# Save as Word
gtsave(my_table, "table1.docx")

# Save as PNG image
gtsave(my_table, "table1.png")

# For LaTeX/PDF (kableExtra)
kableExtra::save_kable(kable_table, "table1.pdf")
```

**Esperado:** Tabla guardada en el formato de archivo especificado (HTML, Word, PNG o PDF). El archivo de salida se abre correctamente en la aplicación apropiada.

**En caso de fallo:** Si `gtsave()` falla para formato Word, asegurar que el paquete `webshot2` esté instalado. Para salida PDF vía `kableExtra`, asegurar que una distribución LaTeX (TinyTeX o MiKTeX) esté instalada.

### Paso 7: Incrustar en Documento Quarto

````markdown
```{r}
#| label: tbl-descriptives
#| tbl-cap: "Descriptive Statistics by Group"

gt(descriptives) |>
  fmt_number(columns = c(M, SD), decimals = 2)
```

See @tbl-descriptives for summary statistics.
````

**Esperado:** La tabla se renderiza en línea en el documento Quarto con una etiqueta referenciable (`@tbl-*`) y un subtítulo apropiado. La tabla se adapta al formato de salida del documento automáticamente.

**En caso de fallo:** Si la tabla no se renderiza, verificar que la etiqueta del bloque comience con `tbl-` para referencias cruzadas en Quarto. Si el formato se pierde en PDF, cambiar de `gt` a `kableExtra` para salida basada en LaTeX.

## Validación

- [ ] La tabla se renderiza correctamente en el formato objetivo (HTML, PDF, Word)
- [ ] Los números están formateados consistentemente (decimales, alineación)
- [ ] La notación estadística sigue la guía de estilo (cursivas, símbolos apropiados)
- [ ] La tabla tiene un subtítulo claro y numeración
- [ ] Los encabezados de columna son significativos
- [ ] Las notas/notas al pie explican abreviaturas o marcadores de significancia

## Errores Comunes

- **gt en PDF**: gt tiene soporte limitado para PDF. Usar kableExtra para documentos con mucho LaTeX.
- **Inconsistencia en redondeo**: Siempre usar `fmt_number()` (gt) o `format()` en lugar de `round()` para visualización
- **Visualización de valores faltantes**: Configurar con `sub_missing()` en gt o `options(knitr.kable.NA = "")`
- **Tablas anchas en PDF**: Las tablas que exceden el ancho de página necesitan `landscape()` o reducción del tamaño de fuente
- **Formato numérico APA**: Sin cero inicial para valores acotados por 1 (valores p, correlaciones): ".03" no "0.03"

## Habilidades Relacionadas

- `format-apa-report` - tablas dentro de manuscritos APA
- `create-quarto-report` - incrustar tablas en informes
- `build-parameterized-report` - tablas que se adaptan a parámetros

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.