Publication-Ready Summary Tables and Forest Plots
Overview
A comprehensive framework for descriptive statistics and regression analysis that produces publication-ready tables and forest plots. Provides a unified interface from descriptive statistics through multivariable modeling, with support for linear models, generalized linear models, Cox proportional hazards, and mixed-effects models. Also includes univariable screening, multivariate regression, model comparison, and export to multiple formats including PDF, DOCX, PPTX, 'LaTeX', HTML, and RTF. Built on 'data.table' for computational efficiency.
- Speed up
desctable(), which now computes rank-test *p*-values from a single sort and derives the grouping structure once per table - Pass the arguments in
...ofdesctable()(*e.g.*,var.equal = TRUE) to the tests that accept them, with a warning for arguments no test accepts; exclude missing and empty categories from categorical tests, falling back to a Monte Carlo *p*-value when Fisher's exact test exceeds its workspace - Fix categorical totals, median survival intervals at nondefault confidence levels, and the formatting of values of 1,000 or more in
desctable(), and show the second level of binary variables in condensed tables - Compute the Gehan-Breslow, Tarone-Ware, and Peto-Peto tests that
survtable(test_type = )names, honorp_digits, list groups in order of first appearance asdesctable()does, and match survival time quantiles to their groups when a factor level is empty - Show logical predictors by level, with
FALSEas the reference, in regression tables and forest plots - Accept non-syntactic variable names (*e.g.*,
"tumor stage"), with or without backticks, infit(),uniscreen(),multifit(),fullfit(), andsurvtable(), and read factor levels and variable names that contain a colon correctly - Fix the matching, counts, and labels of interaction terms whose variables have non-syntactic, overlapping, or logical names
- Order the variables of the tables of models passed to
fit(model = )andm2dt()as the model formula does, and describe mixed models as univariable or multivariable from their fixed-effect terms - Count the events of Cox models from the event argument of
Surv(), coded asSurv()codes it; counts were wrong for status coded 1 and 2, counting-process responses,clogit()models, and events written as expressions - Omit aliased coefficients from forest plots and Cox regression tables, show a factor whose first level is empty against its effective reference level, and drop empty factor levels before fitting Cox models
- Compute forest plot intervals as the regression tables do, following
summata.conf_method, at the requestedconf_levelinuniforest(), and with the *t* quantile for linear models - Fix forest plot interaction rows under
indent_groupsandcondense_table,coxforest()intervals and interactions forcoxmemodels, and the fixed-effect terms of mixed models (*e.g.*,log(age)) inglmforest()andlmforest(); draw forest plots whenknitris not installed
Show all changes in 0.13.0Hide the rest of the changes in 0.13.0
- Report only the predictor's coefficients in
multifit(), with observations rather than events as *n* for Cox models and the given order of outcomes and levels undercolumns = "both"; fit Cox models toSurv()outcomes, asfit()does; draw the table's estimates inmultiforest() - Name the predictor or outcome of a failed fit in
uniscreen()andmultifit(), and use one core when the number of cores cannot be determined - Compare linear mixed models in
compfit()on maximum likelihood fits, include the Brier score in the composite score of logistic models, score the Cox global *p*-value independently of the number format, accept candidates with aliased coefficients, and skip profile intervals that are not displayed; use model-level *N* and Events incompfit()and thefit()print method - Bold significant *p*-values in exported tables under every number format, and keep the *p*-values of factor levels in indented and condensed exports
- Compute the c-statistic without
pROCand name GLM families withoutstringr; both are removed fromSuggests - Documentation and testing suite revisions
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-04
- NOTE12 OK, 1 NOTE2026-08-01
- OK13 OK2026-07-21
- ERROR12 OK, 1 ERROR2026-07-14
- OK13 OK2026-07-13
Show 2 earlier changesHide 2 earlier changes
- ERROR12 OK, 1 ERROR2026-07-10
- OK9 OK2026-03-10
Documentation
- Help pages
- 194 (169 internal)
- Examples that run
- 100%24 run in a plain check (3 of them under a condition)
- Exported functions with examples
- 100%
- Documented parameters
- 99%
- Return-value docs
- 100%
- Help pages citing references
- 0%
- Advanced Workflows HTML
- Descriptive Tables HTML
- Forest Plots HTML
- Installation and Setup HTML
- Model Comparison HTML
- Multivariate Regression HTML
- Regression Modeling HTML
- Survival Tables HTML
- Table Export HTML
Downloads
Repository
Issues over time
9 development-tooling and community-health practices detected across 6 families in the upstream repository
Checks run against github.com/phmcc/summata on 2026-10-21.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2026-10-18
Show all practicesHide 2 practices
Dependencies
Installing summata adds 18 packages (8 with compiled code, 19 MB of source tarballs). Heaviest: ggplot2 6.0 MB, data.table 5.7 MB, isoband 1.5 MB.
Code & Tests
Datasets
People & History
Pick two releases to compare their code metrics.
- 0.13.0Latest2026-10-19 · current release · diff ↗ ·
listed once in CRAN's queue
Seen in one reading of CRAN's incoming queue, at 2026-10-19 00:39 UTC, so it stayed less than the time between readings. - 0.12.0
- 0.11.52026-05-07 · diff ↗
- RR 4.6.0 released · 2026-04-24
- 0.11.42026-03-20 · diff ↗
- 0.11.32026-03-08
- RR 4.5.0 released · 2025-04-11
Package metadata
- First published
- 2026-03-08
- Total releases
- 5 / 1 yrs
- License
- GPL (>= 3) OSI
- Minimum R
- ≥ 4.2.0
- Bundled data
- 20 KB / 2 files
- Download size
- 2.4 MB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("summata")The package provides a citation file that builds its entry when R runs it. Run citation() to see it.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-23, which the citation names so these numbers can be found later. More on citing and the projects behind them.