generate-statistical-tables
О программе
Этот навык создает готовые к публикации статистические таблицы в R с использованием пакетов, таких как gt, kableExtra или flextable. Он генерирует описательную статистику, результаты регрессионного анализа, таблицы ANOVA и выводы в формате APA для академических статей. Используйте его при форматировании результатов анализа для Quarto, R Markdown или отчетов для рукописей.
Быстрая установка
Claude Code
Рекомендуетсяnpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/generate-statistical-tablesСкопируйте и вставьте эту команду в Claude Code для установки этого навыка
Документация
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
| Package | Best for | Formats |
|---|---|---|
gt | HTML, general-purpose | HTML, PDF, Word |
kableExtra | LaTeX/PDF documents | PDF, HTML |
flextable | Word documents | Word, PDF, HTML |
gtsummary | Clinical/statistical summaries | All 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()notround(). - Missing values:
sub_missing()(gt) oroptions(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 tablescreate-quarto-report— embed in reportsbuild-parameterized-report— param-adaptive tables
GitHub репозиторий
Похожие навыки
content-collections
МетаЭтот навык предоставляет проверенную в продакшене настройку для Content Collections — TypeScript-ориентированного инструмента, который преобразует файлы Markdown/MDX в типобезопасные коллекции данных с валидацией Zod. Используйте его при создании блогов, сайтов документации или контентных приложений на Vite + React для обеспечения типобезопасности и автоматической проверки содержимого. Он охватывает всё: от настройки плагина Vite и компиляции MDX до оптимизации развертывания и валидации схем.
polymarket
МетаЭтот навык позволяет разработчикам создавать приложения на платформе прогнозных рынков Polymarket, включая интеграцию с API для торговли и получения рыночных данных. Он также обеспечивает потоковую передачу данных в реальном времени через WebSocket для отслеживания текущих сделок и рыночной активности. Используйте его для реализации торговых стратегий или создания инструментов, обрабатывающих обновления рынка в реальном времени.
creating-opencode-plugins
МетаЭтот навык помогает разработчикам создавать плагины OpenCode, которые подключаются к более чем 25 типам событий, таким как команды, файлы и операции LSP. Он предоставляет структуру плагина, спецификации API событий и шаблоны реализации для модулей на JavaScript/TypeScript. Используйте его, когда вам нужно перехватывать, отслеживать или расширять жизненный цикл ассистента OpenCode AI с помощью пользовательской событийно-ориентированной логики.
sglang
МетаSGLang — это высокопроизводительный фреймворк для обслуживания больших языковых моделей (LLM), специализирующийся на быстрой структурированной генерации JSON, regex и рабочих процессов агентов с использованием кэширования префиксов RadixAttention. Он обеспечивает значительно более высокую скорость вывода, особенно для задач с повторяющимися префиксами, что делает его идеальным для сложных структурированных результатов и многократных диалогов. Выбирайте SGLang вместо альтернатив, таких как vLLM, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.
