Changelog
Source:NEWS.md
modelsummary 1.4.2
New:
 Minimal support for
Typst
output, with autodetection in Quarto documents. 
strip
argument indvnames
. 
s.value
statistic is now available wheneverp.value
is available. See Greenland (2019). 
datasummary_skim()
now includes histograms ingt
tables.
Bugs:
 GOF term names get escaped in LaTeX. Thanks to @shreyasgm for reviving Issue #546.
 Conflict with
furrr
generated errors for some models. Thanks to @sammo3182 for Issue #647.
modelsummary 1.4.1
CRAN release: 20230519
New:

fmt_sci()
can now be used in thefmt
argument for rounding with scientific notation.
Bugs:
 Group separators respect
add_rows
withshape="rbind"
. Thanks to @lrose1 for Report #626.  Bad column with horizontal models in
shape
and grouped estimates. Thanks to @iagopssjd for Report #631. 
coef_rename=TRUE
bug with grouped estimates. Thanks to @iagopssjd for Report #631.  Upstream issue #881 in
parameters
meant thatvcov
was no longer used for confidence intervals.
modelsummary 1.4.0
CRAN release: 20230426
 Builtin support for markdown tables.
 Package no longer depends on
kableExtra
. Recommends an additional install for other formats.  Persistent configuration of default output format:
config_modelsummary(factory_default = "gt")

shape = "rcollapse"
andshape = "rbind"

glance_custom()
can drop GOF by assigningNA
: https://stackoverflow.com/questions/75215355/assigningdifferentcoefficientnamesandgoodnessoffitstatisticstodifferen  When a
statistic
is not available,modelsummary
prints an empty cell instead of returning an error.  “\label{tab:something}” works in
title
even whenescape=TRUE
 Multiple
fixest_multi
objects supported. 
options(modelsummary_future = FALSE)
disablesfuture
parallelism.
Bug fixes:

statistic=NULL
is now respected whenshape="rbind"
. Thanks to Panos Mavros for report #620. 
get_estimates()
supportsvcov
string shortcuts and formulas. Thanks to @ethanscarl for report #605.  Quarto and Rmarkdown documents include
situnix
in header automatically for decimal alignement withalign="ddd"

escape
is now respected bymodelsummary
withshape="rbind"
. Thanks to @chickymonkeys for report #622.
modelsummary 1.3.0
CRAN release: 20230105
Breaking change:
 The default column label style in
modelsummary()
has changed from “Model 1” to “(1)”. The benefits are: labels are no longer in English by default; use less horizontal space; eliminate the “Model” redundancy. Unfortunately, this could break code in some edge cases where users rely on column names to manipulate tables. The old behavior can be restored by calling:options(modelsummary_model_labels="model")
New features:

shape="rbind"
to stack multiple regression tables and create “panels” with labelled groups of models. 
fmt
: new helper functions for different formatting styles
fmt = fmt_decimal(2)
: decimal digits 
fmt = fmt_decimal(digits = 2, pdigits = 4)
: decimal digits with p valuespecific setting 
fmt = fmt_sprintf("%.3f")
:sprintf()
decimal 
fmt = fmt_sprintf("%.3e")
:sprintf()
scientific 
fmt = fmt_significant(3)
: significant digits 
fmt = fmt_statistic("estimate" = 2, "std.error" = 3)
: statisticspecific formatting 
fmt = fmt_term("(Intercept)" = 2, "hp" = 3)
: termspecific formatting 
fmt = fmt_identity()
: raw values

 New styles for default column labels in
modelsummary
, such as Roman Numerals or letters in parentheses. Set the style with a global option:
options(modelsummary_model_labels = "roman")
 Supported styles: “model”, “arabic”, “letters”, “roman”, “(arabic)”, “(letters)”, “(roman)””
 Set the style with a global option:

modelplot(draw = FALSE)
now returns ap.value
column. This allows conditional aesthetics (see themodelplot
vignette).  Better integration with the
marginaleffects
package.
Bugs:
 Some
fixest
models returns useless “group.x” and “group.y” columns. Isse #591. Thanks to Adam Altmejd for the report.
modelsummary 1.2.0
CRAN release: 20221126
Breaking change:
 With the
shape
andoutput="dataframe"
arguments, there always used to be agroup
column. Now, this column has the same name as the variable in theshape
formula (“response”, “component”, etc.).
New features:

shape
can include multiple groups. 
coef_rename
can be an unnamed vector of length equal to the number of terms in the final table, obtained aftercoef_map
andcoef_omit
are applied and models are merged. 
coef_omit
accepts numeric indices. Positive values: coefficients to omit. Negative values: coefficients to keep. 
datasummary_skim
: Increased maximum number of variables to 250.  Quarto notebooks compile to Word and Markdown automatically.
Bug fixes:
 Order of notes preserved in some output format (Issue #577)
modelsummary 1.1.0
CRAN release: 20221020
Breaking change:
 Requires
siunitx
version 3.0.25 LaTeX package.  The
title
argument now respects theescape
argument for allkableExtra
output formats. This can break tables in which users manually escaped titles.
New features:
 “d” is accepted for decimalalignment in the
align
argument for alloutput
formats.modelsummary(mod, align = "ld")
 New
update_modelsummary()
function makes it easy to install the dev versions ofmodelsummary
and its dependencies (mostly useful for Vincent and people who report bugs).  Rounding: display at least one significant digit by default.
 Automatic renaming of
haven
labels inmodelsummary()
,datasummary()
,datasummary_skim()
 Allow
output = "filename.csv"
 Allow
output = "filename.xlsx"

add_columns
argument supported inmodelsummary()

datasummary_balance
supports thestars
argument.  Allow stars and confidence intervals with
align = "d"
column.
Bug fixes:
 In some locales, the HTML minus sign created problems in the output. We only use it in “known” locales.
 Many minor bug fixes
modelsummary 1.0.1
CRAN release: 20220713

shape
argument accepts interactions with the colon “:” character. This combines two columns into one, which can be useful to display terms and group names in a single column.  Parallelization using
parallel::mclapply
. See?modelsummary

modelsummary
no longer computes confidence intervals when not necessary, which can save some time. Also see:conf_level=NULL
 Added log likelihood to GOF for lm and glm models.
 Removed extraneous warnings
 Bug fixes
modelsummary 1.0.0
CRAN release: 20220629
This first major release accompanies the publication of an article in the Journal of Statistical Software:
ArelBundock, Vincent (2022). “modelsummary: Data and Model Summaries in R.” Journal of Statistical Software, 103(1), 123. doi:10.18637/jss.v103.i01 https://doi.org/10.18637/jss.v103.i01.’
If you like modelsummary
, please cite the JSS article and tell your friends about it.
Minor changes:

gof_map="all"
includes all available statistics.gof_map="none"
excludes all statistics.  Bug fixes
modelsummary 0.11.1
CRAN release: 20220611
 Better printout for term names in mixedeffects models
 {brms} and {stanreg} models now extracted with
diagnostic=NULL
andtest=NULL
by default for speed.
modelsummary 0.11.0
CRAN release: 20220606
Breaking changes:

modelsummary_wide
is no longer available. Use theshape
argument ofmodelsummary
instead. 
modelsummary
now uses theeasystats
packages (performance
andparameters
) to extract estimates and goodnessoffit statistics instead ofbroom
. This can be reverted by setting a global option:options(modelsummary_get="broom")
. This change aims to (1) increase consistency across models, (2) improve the developers’ ability to push bug fixes upstream when necessary, and (3) improve support for mixed effects, bayesian, and GAM models. The two main drawbacks are: (a) The set of printed statistics may be slightly different from previous versions ofmodelsummary
(b) The group identifiers used in theshape
formula will also be different for certain models (e.g., innnet::multinom
,y.level
becomesresponse
).
New features:
 The
shape
argument accepts a formula and can reshape information in myriad ways. Deprecates thegroup
argument. Examples:
~ statistic
: statistics are shown horizontally in distinct columns. 
model ~ term
: models in rows and terms in columns. 
term + y.level + statistic ~ model
: grouped coefficients for multivariate outcome innnet::multinom

y.level ~ model
: partial match is the same as the previous formula

 Format distinct statistics differently by passing a named list to
fmt
:modelsummary(mod, fmt = list(estimate = 2, std.error = 1, rmse = 4))
 Use
glue
to apply functions to numeric values by settingfmt = NULL
. Example:modelsummary(model, fmt = NULL, estimate = "{log(estimate)}")
 Update for breaking changes after fixest 0.10.4
Bug fixes:

group_map
rename issue  Residual standard error mistakenly labelled “RMSE” in
lm
models. 
datasummary_skim
output to jpg should now works 
escape
fixes
modelsummary 0.10.0
CRAN release: 20220414
 New
exponentiate
argument formodelsummary()
andmodelplot()

gof_map
accepts a vector such asc("rmse", "nobs", "r.squared")
 Drop
rlang
dependency  Bug fixes
modelsummary 0.9.6
CRAN release: 20220225
datasummary_balance
:
 Accepts
~ 1
as a formula to summarize all data.
Misc:
 documentation improvements
 RMSE included by default in models of class
lm
modelsummary 0.9.5
CRAN release: 20220110
modelsummary
:

vcov
strings likeHC1
andRobust
are now caseinsensitive 
gof_map
now accepts a data.frame or tibble with afmt
listcolumn which includes functions (see Examples in docs) 
R2
is no longer computed by default for bayesian and mixed effects models. An informative onetime warning is printed about themetrics
argument.
datasummary_skim
:
 Histograms now work in Jupyter
 Bugfix: harmless error message is no longer printed
kableExtra
factory:
 The
col.names
argument can now be passed tokableExtra::kbl
through the … ellipsis.
Misc:
 Many small improvements to the vignettes and docs

output = "github_document"
is now supported
modelsummary 0.9.3
CRAN release: 20211102
modelsummary
:
 F statistic takes into account
vcov
argument  Support group = group ~ model + term
datasummary_balance
:
 Weighted means and standard deviations are now supported. Counts and percentages are not, but raise a warning.
Misc:
 Bugfix: rounding in LaTeX w/ siunitx and NaN entries.
 output=‘jupyter’ no longer prints an extraneous TRUE to the notebook
modelsummary 0.9.2
CRAN release: 20210929
modelsummary
:
 Improved
vcov
argument handling forfixest
models (#357 by @grantmcdermott)  Fix display of
fixest::i()
variables and interactions (#361 by @grantmcdermott)  Consistent display of clustered SEs (#356, #363 and #366 by @grantmcdermott)
datasummary_correlation
:

add_rows
andadd_columns
arguments are now available here.
Misc:
 Global options for output factories are renamed:
modelsummary_factory_default
,modelsummary_factory_html
, etc.  Hot fix for change in Rdevel behavior or
intersect
Bug fixes:

datasummary_balance
: escape variable names whenescape=TRUE
 Blogdown LaTeX dependency bug when output is HTML
modelsummary 0.9.1
CRAN release: 20210812
Breaking change:
 Support for
dcolumn
for dotaligned columns is deprecated. Use “d” in thealign
argument instead.
Other changes:
 LaTeX output: Numeric entries are wrapped in the
\num{}
function from thesiunitx
package by default. This produces much nicer formatting. This can be disabled with a global option. See?modelsummary
 The
align
argument accepts a “d” column for dotalignment using thesiunitx
LaTeX package:align="ldd"
.  HTML tables display proper minus signs.
 New
escape
argument in most tablebuilding functions.  LaTeX output accepts the
threeparttable=TRUE
argument through...
 No more dependency on
tidyr
modelsummary
:

group
: The order of terms in the formula determines the order of rows/columns
modelsummary_wide
:
 Note: This function will eventually be deprecated
 Bugfix with statistic=NULL.
modelplot
:
 Preserves order of models in the usersupplied list
datasummary_crosstab
:

statistic=NULL
produces a very basic crosstab
datasummary_crosstab
:
 Default alignment “lrrrrr” consistent with other datasummary_* functions
modelsummary 0.8.1
CRAN release: 20210617
modelsummary
:
 Disable stars footnote with
options("modelsummary_stars_note" = FALSE)

longtable=TRUE
works for LaTeX output  Interactions with “:” are no longer converted to “x” when
coef_map
orcoef_rename
are used. 
group = model ~ term + group
is now supported.
datasummary_skim
:

datasummary_skim("categorical")
keepsNA
by default. Users can convert variables to factors before callingdatasummary_skim
to excludeNA
.
Other:
 Improved warnings for bad calls:
modelsummary(model1, model2)

gt
titles use the newcaption
argument in thegt 0.3.0
function  Bug fix: Overaggressive tests for glue strings prevented functions inside {}
modelsummary 0.8.0
CRAN release: 20210521
Breaking change:
 The default significance markers
stars=TRUE
have been updated to be consistent with the default output from base R (e.g., in summary.lm). The new significance thresholds are: “+” p < 0.1, “” p < 0.05, ”” p < 0.01, ”” p < 0.001
datasummary_crosstab
:
 New function to produce crosstabulations
datasummary
:

N
is smart enough to return either the number of elements in a subset or the number of nonmissing observations in a variable
datasummary_balance
:
 Keeps
NA
s in factor variables by default. Users can convert their variables with thefactor()
function to omitNA
s automatically.
modelsummary
:
 themes can be set using global options (experimental)
 new vcov options: “bootstrap”, “HAC”, “NeweyWest”, “Andrews”, “panelcorrected”, “weave”, “outerproduct”
 A valid
get_gof
(glance
) is now optional.  … is pushed through to
sandwich
, which allows things like:modelsummary(model, vcov = "bootstrap", R = 1000, cluster = "firm")
Other:
 Jupyter notebook support via
output="jupyter"
 Bug fixes
modelsummary 0.7.0
CRAN release: 20210419
modelsummary
:
 new arguments for
modelsummary
:group
andgroup_map
for grouped parameters (e.g., outcome levels in multinomial logit or components of gamlss model). 
dvnames()
makes it easy to get dependent variable column titles (thanks to @NickCHK) 
output="modelsummary_list"
to save a lightweight listbased representation of the table which can be saved and fed tomodelsummary
once more to get a full table. 
vcov
adds a row to note the type of standard errors. 
modelsummary
accepts a single model with multiplevcov
s. 
get_gof
forwards … tomodel_performance

coef_map
accepts unnamed vectors for easy subsetting 
fixest::fixest_multi
support 
options(modelsummary_get)
to set the order of extraction functions to use under the hood (broom vs. easystats vs. all) 
metrics
argument ofperformance::model_performance
is available viamodelsummary
’s … ellipsis to limit the GOF statistics in Bayesian models.  users can omit the stars legend note by using glue strings:
estimate="{estimate}{stars}"
 output=“html” can use
gt
by settingoptions(modelsummary_factory_html="gt")
datasummary_correlation
:
 passes
...
forward  new function:
datasummary_correlation_format

datasummary_correlation
’smethod
argument accepts functions and “pearspear” (thanks to @joachimgassen)
datasummary
:

datasummary
functions androunding
accept …, big.mark, etc.
datasummary_skim
:
 now works with haven_labeled numeric
 faster tables with bayesian models.
Bug fixes and lints
modelsummary 0.6.6
CRAN release: 20210216
 new output format: latex_tabular

tidy_custom
allows partial term matches 
modelsummary(coef_rename)
accepts functions  new function
coef_rename
for use inmodelsummary(coef_rename=coef_rename)

modelplot
acceptsadd_rows
to add reference categories  informative error message when estimate or statistic is not available
 bug fixes
modelsummary 0.6.5
CRAN release: 20210107

statistic_override
becomesvcov
 vcov accepts shortcuts: “robust”, “stata”, “HC0”, etc.
 vcov accepts formulas for clustered SEs: ~group
 modelsummary_wide has a new “stacking” argument
 html horizontal rule to separate estimates form gof
 gof_map accepts list of lists. only needs 3 columns.
 support officedown Rmd
 estimate accepts a vector for per model estimates
 options(modelsummary_default) can be markdown, html, latex
 bug: passing arguments through …
 bug: stars and rounding
modelsummary 0.6.4
CRAN release: 20201215
 glue format for
estimate
andstatistic
 easystats support for model info extraction
 deprecate statistic_vertical
 deprecate extract_models. Use modelsummary(output=“dataframe”) instead.
 modelplot pushes … through to modelsummary(output=“dataframe”)
 datasummary_skim(type=“dataset”)
 gof_map omits by default
 datasummary_balance uses row percentages
 statistic_override does not require a list
 statistic_override accepts a single model
 N function for well formatted N in datasummary
 Bug fixes
modelsummary 0.6.3
CRAN release: 20201024
 new function: modelsummary_wide
 coef_omit and gof_omit use grepl(perl=TRUE)
 fmt accepts integer, string or function and respects options(OutDec=“,”)
 align argument for modelsummary
 align is more liberal to accept dcolumn alignment
 glance_custom methods for lfe and fixest
 bug fixes
modelsummary 0.6.2
CRAN release: 20200929
 new argument: coef_rename
 new function: datasummary_df
 preserve term order in modelsummary
 refactor datasummary_balance
 datasummary_skim uses svg histograms instead of unicode
 removed 5 dependencies
 pass … to kableExtra::kbl for more customization
 test improvements
 internal code style
 bug fixes
modelsummary 0.6.0
CRAN release: 20200902
 default HTML output factory is now kableExtra
 interaction “:” gsubbed by “0d7”
 dependencies: removed 1 depends, 3 imports, and 3 suggests
 word_document knitr works outofthebox
 bug fixes
modelsummary 0.4.1
CRAN release: 20200617
 add_rows now accepts a data.frame with “position” and “section” columns
 add_rows_location is deprecated
 bug in sanity_output prevented overwriting files
modelsummary 0.4.0
CRAN release: 20200613
 huxtable support
 flextable support
 estimate argument
 fixest tidiers
 website and vignette improvements
 gof_map additions
 glance_custom
 tidy_custom
modelsummary 0.3.0
CRAN release: 20200526
 Outofthebox Rmarkdown compilation to HTML, PDF, RTF
 kableExtra output format for LaTeX and Markdown
 Support for
threeparttable
, colors, and many other LaTeX options  Deprecated arguments: filename, subtitle
 Deprecated functions: clean_latex, knit_latex

pkgdown
website and doc improvements 
mitools
tidiers  New tests
modelsummary 0.2.1
CRAN release: 20200430
 Convenience function to render markdown in row/column labels
 bug: breakage when all GOF were omitted
 Clean up manual with @keywords internal
 bug: tidyr import
modelsummary 0.2.0
CRAN release: 20200405
 gt is now available on CRAN
 new latex_env argument for knit_latex and clean_latex
 bug when all gof omitted
 bug in statistic_override with functions
 bug caused by upstream changes in tab_style
 bug caused by upstream changes in filename=‘rtf’
 Allow multiple rows of uncertainty estimates per coefficient
 Preserve add_rows order
 Display uncertainty estimates next to the coefficient with statistic_vertical = FALSE
 Better clean_latex function
 Can display R2 and confidence intervals for miceimputed lmmodels
 Internal functions have @keywords internal to avoid inclusion in docs
 Statistic override accepts preformatted character vectors