Skip to content

causalfragility-lab/statAPA

Repository files navigation

statAPA

CRAN status R-CMD-check License: MIT

statAPA produces publication-ready statistical tables and figures formatted according to the 7th edition of the American Psychological Association (APA) style guidelines. Output can be directed to the R console, Microsoft Word (via officer + flextable), or LaTeX.


Installation

Install the released version from CRAN:

install.packages("statAPA")

Or the development version from GitHub:

# install.packages("remotes")
remotes::install_github("causalfragility-lab/statAPA")

Functions at a glance

Function What it does
apa_descriptives() Descriptive statistics table (optionally by group)
apa_t_test() One-sample, two-sample (Welch/pooled), and paired t-tests
apa_z_test_mean() z-test with known population standard deviation(s)
apa_chisq() Chi-square test (goodness-of-fit or independence)
apa_prop_test() Proportion test with risk difference, risk ratio, odds ratio
apa_anova() One-way ANOVA/ANCOVA (Type II/III) with effect sizes
apa_ancova() ANCOVA with covariate validation and adjusted means
apa_twoway_anova() Two-way ANOVA with interaction and simple effects
apa_manova() MANOVA (Pillai, Wilks, Hotelling-Lawley, Roy)
apa_posthoc() Post-hoc pairwise comparisons (emmeans)
apa_table() Regression / multilevel coefficient table
apa_robust() Robust regression (HC or cluster-robust SEs)
apa_hetero() Heteroscedasticity diagnostics
apa_homoskedasticity() Homoskedasticity check (Breusch-Pagan, White, Levene)
apa_multilevel() Multilevel models: fixed/random effects, ICC, R², model comparison
apa_plot_descriptives() Mean ± 95% CI plot by group
apa_plot_regression() Fitted-line plot with confidence ribbon
apa_plot_anova() Estimated marginal means plot
apa_plot_residuals() Residual diagnostic plots
apa_to_flextable() Convert any result to an APA-styled flextable
save_apa() Save a ggplot figure at 300 dpi with APA dimensions
theme_apa() APA-style ggplot2 theme

Quick example

library(statAPA)

# Descriptive statistics
apa_descriptives(mtcars, vars = c("mpg", "wt", "hp"), group = "cyl")

# t-test
apa_t_test(mtcars$mpg[mtcars$am == 0],
           mtcars$mpg[mtcars$am == 1],
           output = "console")

# Two-way ANOVA with simple effects
mtcars2 <- transform(mtcars, cyl = factor(cyl), gear = factor(gear))
apa_twoway_anova(mpg ~ cyl * gear, data = mtcars2,
                 factorA = "cyl", factorB = "gear")

# MANOVA
apa_manova(cbind(Sepal.Length, Petal.Length) ~ Species, data = iris)

# Multilevel model
library(lme4)
data(ECLS_demo)
m0 <- lmer(math ~ 1 + (1 | schid), data = ECLS_demo, REML = FALSE)
m1 <- lmer(math ~ SES + (1 | schid), data = ECLS_demo, REML = FALSE)
apa_multilevel(m0, m1, model_names = c("Null", "+ SES"))

# Export to Word
fit <- lm(mpg ~ wt + hp, data = mtcars)
apa_table(fit, output = "word", file = "regression_table.docx")

Citation

If you use statAPA in published research, please cite: Hait, S. (2026). statAPA: APA 7th Edition Statistical Tables, Plots, and Multilevel Model Reports. R package version 0.1.0. https://CRAN.R-project.org/package=statAPA

License

MIT © 2026 Subir Hait

About

APA 7th Edition Statistical Tables, Plots, and Multilevel Model Reports

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages