MCP HubMCP Hub
Volver a habilidades

generate-statistical-tables

pjt222
Actualizado 2 days ago
5 vistas
17
2
17
Ver en GitHub
Metaworddesign

Acerca de

Esta habilidad genera tablas estadísticas listas para publicación en R utilizando paquetes como gt, kableExtra o flextable. Crea estadísticas descriptivas, resultados de regresión, tablas ANOVA y salidas con formato APA para artículos académicos. Úsela al formatear resultados de análisis para Quarto, R Markdown o informes de manuscritos.

Instalación rápida

Claude Code

Recomendado
Principal
npx skills add pjt222/agent-almanac -a claude-code
Comando PluginAlternativo
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternativo
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/generate-statistical-tables

Copia y pega este comando en Claude Code para instalar esta habilidad

Documentación

Generate Statistical Tables

Pub-ready stat tables for reports + manuscripts.

Use When

  • Descriptive stats tables
  • Regression / ANOVA output format
  • Correlation matrices
  • APA-style academic
  • Quarto / R Markdown tables

In

  • Required: stat results (models, summaries)
  • Required: out format (HTML, PDF, Word)
  • Optional: style guide (APA, journal)
  • Optional: numbering scheme

Do

Step 1: Choose pkg

PackageBest forFormats
gtHTML, general-purposeHTML, PDF, Word
kableExtraLaTeX/PDF documentsPDF, HTML
flextableWord documentsWord, PDF, HTML
gtsummaryClinical/statistical summariesAll via gt/flextable

→ Pkg selected by format + use case, installed + loadable.

If err: missing → install.packages("gt") (or proper). gtsummary needs gt + gtsummary.

Step 2: Descriptive stats

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

gt object w/ M, SD, n grouped, italic headers.

If err: group_by() unexpected → verify var + levels. fmt_number() err → numeric cols.

Step 3: Regression results

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

→ Regression table w/ bold p, fit stats note, caption.

If err: tbl_regression() fail → verify model obj (lm, glm). add_glance_source_note() err → check broom::glance(model).

Step 4: Correlation matrix

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

→ Lower-triangle cor matrix w/ blanked upper, 2 dec, caption.

If err: sub_missing() not blanking → check NA set. Non-numeric → cor() fails → filter numeric.

Step 5: ANOVA table

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

→ ANOVA w/ Source, df, SS, MS, F, p. Interactions labeled, p to 3 dec.

If err: broom::tidy(aov_result) unexpected cols → verify aov obj. Type III SS → car::Anova(model, type = 3).

Step 6: Save

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

→ Saved to format. Opens correctly.

If err: gtsave() Word fail → install webshot2. PDF via kableExtra → install TinyTeX/MiKTeX.

Step 7: Embed in Quarto

```{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.

→ Renders inline w/ @tbl-* cross-ref + caption. Adapts to format.

If err: no render → chunk label tbl- prefix. PDF formatting lost → switch gt → kableExtra.

Check

  • Renders in target format
  • Consistent number format
  • Stat notation per style (italic, symbols)
  • Clear caption + numbering
  • Meaningful headers
  • Notes/footnotes explain abbrevs + sig markers

Traps

  • gt in PDF: limited. Use kableExtra for LaTeX.
  • Rounding inconsistency: fmt_number() (gt) / format() not round().
  • Missing values: sub_missing() (gt) or options(knitr.kable.NA = "").
  • Wide PDF: landscape() or font reduction.
  • APA number: no leading zero when ≤1 (p, corr): ".03" not "0.03".

  • format-apa-report — APA manuscript tables
  • create-quarto-report — embed in reports
  • build-parameterized-report — param-adaptive tables

Repositorio GitHub

pjt222/agent-almanac
Ruta: i18n/caveman-ultra/skills/generate-statistical-tables
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Habilidades relacionadas

content-collections

Meta

Esta habilidad proporciona una configuración probada en producción para Content Collections, una herramienta centrada en TypeScript que transforma archivos Markdown/MDX en colecciones de datos con tipado seguro mediante validación Zod. Úsala al construir blogs, sitios de documentación o aplicaciones Vite + React con mucho contenido para garantizar seguridad de tipos y validación automática de contenido. Abarca todo, desde la configuración del plugin de Vite y compilación MDX hasta la optimización de despliegue y validación de esquemas.

Ver habilidad

polymarket

Meta

Esta habilidad permite a los desarrolladores crear aplicaciones con la plataforma de mercados de predicción Polymarket, incluyendo la integración de API para operaciones y datos de mercado. También proporciona transmisión de datos en tiempo real a través de WebSocket para monitorear operaciones en vivo y actividad del mercado. Úsela para implementar estrategias de trading o crear herramientas que procesen actualizaciones de mercado en tiempo real.

Ver habilidad

creating-opencode-plugins

Meta

Esta habilidad ayuda a los desarrolladores a crear complementos de OpenCode que se conectan a más de 25 tipos de eventos, como comandos, archivos y operaciones LSP. Proporciona la estructura del complemento, las especificaciones de la API de eventos y los patrones de implementación para módulos en JavaScript/TypeScript. Úsala cuando necesites interceptar, monitorear o extender el ciclo de vida del asistente de IA de OpenCode con lógica personalizada basada en eventos.

Ver habilidad

sglang

Meta

SGLang es un framework de alto rendimiento para el servicio de LLM que se especializa en generación rápida y estructurada para JSON, expresiones regulares y flujos de trabajo de agentes utilizando su caché de prefijos RadixAttention. Ofrece una inferencia significativamente más rápida, especialmente para tareas con prefijos repetidos, lo que lo hace ideal para salidas complejas y estructuradas, y conversaciones multiturno. Elige SGLang sobre alternativas como vLLM cuando necesites decodificación restringida o estés construyendo aplicaciones con uso extensivo de prefijos compartidos.

Ver habilidad