The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

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

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.