Gtsummary Versions Save

Presentation-Ready Data Summary and Analytic Result Tables

v1.7.2

10 months ago
  • Removed messaging about the former auto-removal of the tbl_summary(group) variable from the table: a change that occurred 3+ years ago in gtsummary v1.3.1

  • Fix in as_flex_table() where source notes were not accurately rendered. (#1520)

  • Fix in column order when add_ci() is run after add_overall(last=TRUE). Previously, the overall columns were placed in front. (#1525)

  • Line breaks (i.e. \n) are now removed from column headers and table cells when as_kable() is called. (#1526)

  • Fix in as_gt() where columns with common spanning headers were gathered. Corrected with gt::tab_spanner(gather = FALSE). (#1527)

  • Fix in remove_row_type() where header rows for continuous2 type variables was not removed when requested. (#1507)

  • Fix where some default add_p.tbl_summary() categorical tests were chi-squared when it should have been Fisher's exact test. This misclassification occurred in some cases when there was a large differential in the missing pattern for one of the variables in the cross table. (#1513)

  • Fix in add_overall(col_label=) where specified label was not always placed. (#1505)

v1.7.1

1 year ago

New Functions

  • Added as.data.frame() S3 method for gtsummary class.

New Functionality

  • The tbl_svysummary() function may now report the design effect, e.g. tbl_svysummary(statistic = ~"{deff}"). (#1486)

  • Added French translations for new marginal effects tidiers housed in {broom.helpers}. (#1417)

  • Added theme elements to control the default headers in tbl_svysummary(). (#1452)

  • Improved error messaging in tbl_uvregression() when method= argument is not correctly specified. (#1469)

  • Updates to account for changes in {forcats} v1.0.0 and {dplyr} v1.1.0.

  • tbl_svysummary() can now report design effects (#1486)

Bug Fixes

  • Fix in the footnote of add_overall() when run after tbl_continuous(). (#1436)

  • Updating the levels of precision used in round2(), which is used in the background for every rounded/formatted number in a gtsummary table. (#1494)

  • Bug fix when a subset of CIs are requested in add_ci(include=). (#1484)

  • Update in as_hux_table() to ensure the Ns in header are not incorrectly auto-formatted by {huxtable}.

  • Fix in the style_*() family of functions. The attributes of the input vector--excluding the class--are retained. (#1460)

  • Updated style_ratio() to now format negative values.

  • Bug fix in add_ci.tbl_svysummary() for dichotomous variables.

  • add_ci.tbl_svysummary() now takes properly into account the percent argument (#1470)

v1.7.0

1 year ago

Breaking Changes

  • Updated the default argument values in tidy_robust(vcov=NULL, vcov_args=NULL). Users must specify the type of robust standard errors using these arguments.

  • Fully removed deprecated items that were originally deprecated in v1.2.5 (released 3 years ago).

    • add_p(exclude=), as_gt(exclude=), as_kable(exclude=), as_tibble.gtsummary(exclude=), tbl_regression(exclude=), tbl_uvregression(exclude=)
    • tbl_summary_(),add_p_()
    • add_global_p(terms=)

New Functions

  • New function add_ci.tbl_svysummary() for adding confidence intervals to tbl_svysummary() summary statistics. (#965)

New Functionality

  • Arguments pass via the dots in tbl_uvregression(...) are now passed to broom.helpers::tidy_plus_plus(...). (#1396)

  • Added new theme elements to control the default headers in tbl_summary(). (#1401)

  • All examples that previously used <br> for line breaks in gt tables have been updated to use \n. Additionally, the "qjecon" journal theme has been updated to use the updated line breaker as well. (#1311)

  • Now allowing for mixed-class numeric types in tbl_summary(), such that inline_text() will not throw an error when the pattern argument is specified.

  • Added stats::mood.test() to add_p.tbl_summary(). (#1397)

New Documentation

  • Added a new article illustrating how to place gtsummary tables into Shiny applications. (#1335)

Bug Fixes

  • Updated Lancet journal theme to report p-values with more precision, per the journal's reporting guidelines. (#1442)

  • Fix for as_flex_table() when the header is blank. (#1406)

  • Fix in tbl_summary() that now allows for column vectors to be named within a data frame. (#1403)

v1.6.3

1 year ago
  • The as_flex_table() function now recognizes markdown bold (**) and italic (_) syntax in the headers and spanning headers. Restrictions apply. See help file for details. Users can no longer place sets of double stars and underscores without the text being formatted as markdown syntax. (#1361)

  • The modify_caption() function now works with tables created with gtreg::tbl_listing() that do not contain a column named "label". (#1358)

  • Functions tbl_summary() and tbl_svysummary() now support "{n}", "{p}", and "{level}" when no by= variable is present for use in functions like modify_header(). For example, the following previously invalid code works well for both the overall column and the stratified columns:

    trial %>%
      tbl_summary(by = trt) %>%
      add_overall() %>%
      modify_header(all_stat_cols() ~ "**{level}**, N = {n}")
    

    For the survey summary, the unweighted variants are also available. (#1366)

  • Added experimental feature where additional arguments can be passed to broom.helpers::tidy_plus_plus() via tbl_regression(...). (#1383)

  • Updated the arguments in tidy_robust() to account for updates in {parameters}. (#1376)

  • Allowing for 'survfit' objects of class survfit2 in add_nevent.tbl_survfit(). (#1389)

  • Added oneway.test() test to add_p(). (#1382)

  • Now using {ggstats} to plot regression model coefficients via plot() instead of {GGally}. (#1367)

  • Bug fix in tbl_custom_summary(): the full dataset (including missing observations) is now properly passed as full_data (#1388)

v1.6.2

1 year ago
  • The following updates were made to the indentation implementation for gt output:

    • Previously, only HTML output was able to indent for gt tables, and this was implemented via gt::tab_style().
    • Indentation is now available for HTML, PDF, and Word and is implemented by adding unicode non-breaking spaces to the data frame via gt::text_transform().
    • The "names" for the indentation calls have been updated to "indent" and "indent2". This change should affect very very few users. If you're not sure what the names refer to, then this does not affect you.
    • Indentation for RTF does not currently work. Instead of indented columns, irregular unicode characters are shown. This issue will be addressed in a future gt release. If you do use RTF output, and would like your output to be identical to what it was before this update, use as_gt(include = -indent).
  • A link to the cheat sheet has been added to the website's navigation bar.

  • Added additional options to remove_row_type(type = c("level", "all")).

    • Use type = "all" to remove all rows associated with the variable(s) specified in remove_row_type(variables=).
    • Use type = "level" in conjunction with new argument level_values= to remove specified levels for a variable, or do not use the new argument to remove all levels for categorical variables.
  • Added the standard error of means to the list of available statistics for continuous data summaries in tbl_svysummary(). (#1291)

  • Added Dutch language translations. (#1302)

  • Updated add_significance_stars() to accept any gtsummary table (instead of only regression model summaries) and to work with add_global_p() (#1320)

  • Added the "var_type" hidden column to the output of tbl_survfit(). This addition ensures the table will work with remove_row_type(). (#1343)

  • Updated calls to round() in the style_*() functions to round2(), which implements classic rounding rules. (#1304)

  • Fixed bug in style_sigfig() with numbers close to the thresholds. (#1298)

  • Fixed bug when a column named "variable" was passed to tbl_custom_summary(by=), which resulted in an error. (#1285)

  • Bug fix in as_tibble(fmt_missing = TRUE). Previously, missing assignments applied to more than one row were being ignored. (#1327)

  • Bug fix in column alignment with tbl_stack() for as_kable_extra() output. (#1326)

v1.6.1

1 year ago

New Functionality

  • Added the standard error of proportions to the list of available statistics for categorical data summaries in tbl_svysummary(). (#1187)

  • Added Tarone-Ware test to add_p.tbl_survfit() (#732)

  • Updated add_global_p() to handle tbl_uvregression() objects where users specified the x= argument (when y= argument is more common). (#1260)

Other Updates

  • Updated start-up messaging. (#1228)

  • The paired.wilcox.test available in add_p.tbl_summary() and add_difference.tbl_summary() was mistakenly marked as returning a difference, but it does not. The documentation has been corrected, which results in improved messaging to the user when the test is selected in add_difference(). (#1279)

  • Improved error messages for paired tests in add_p() and add_difference() when group= argument is not specified. (#1273)

  • Added argument with_gtsummary_theme(msg_ignored_elements=) argument. Use this argument to message users if any theme elements will be overwritten and therefore ignored inside the with_gtsummary_theme() call. (#1266)

  • Swapped gt::fmt_missing() for gt::sub_missing() as the former is now deprecated. (#1257)

  • The checks for "haven_labelled" class are now only performed for the variables indicated in include= and by= in tbl_summary() and tbl_svysummary(). The checks in tbl_uvregression() and tbl_survfit.data.frame() are only applied to the variables in include=, e.g. no checking for the outcome variable(s).

  • Updates to labels and default formatting functions of unweighted statistics presented in tbl_svysummary(). (#1253)

  • Adding additional structural checks in tbl_merge() and inline_text() to provide better error messaging. (#1248)

  • Added tbl_regression.crr() method with messaging recommending use of tidycmprsk::crr() instead. (#1237)

  • The experimental support for ftExtra::colformat_md() in as_flex_table() has been removed. The function requires evaluated YAML paths and does not allow un-evaluated references like bibliography:: "`r here::here()`". (#1229)

  • Update for tbl_summary(by=) that now allows for a column named "variable" to be passed. (#1234)

  • Added theme element to control what missing statistic is shown in summary tables with options to display number or percent missing or non-missing or total number of observations. (#1224)

  • Renamed modify_cols_merge() to modify_column_merge() to be inline with the other modify_column_*() functions.

Bug Fixes

  • Fix in as_kable_extra() when output format is 'latex' where a cell that had been bold or italicized had special characters double-escaped. Added a condition not to escape special characters in these styled cells. (#1230)

  • Fix in with_gtsummary_theme(). The function restored any previously set theme, but inadvertently included the temporary theme along with it.

v1.6.0

2 years ago

Improvements to as_kable_extra()

  • For users who used the default kableExtra print without output-specific formatting, there are no breaking changes...the only changes will be improved output styling.
  • The biggest user-facing change is that the default results for LaTeX output are now greatly improved compared to previous releases, when escape=FALSE (the new default).
    • Markdown bold, italic, and underline syntax in the headers, spanning headers, caption, and footnote will be converted to escaped LaTeX code.
    • Special LaTeX characters in the body of the table will be escaped with .escape_latex() or .escape_latex2(), e.g. % will be updated to \\%, and rendered as % in the PDF document.
    • The "\n" symbol will be recognized as a line break in the table headers, spanning headers, caption, and the table body.
    • \n is removed from footnotes
    • The escape= argument is now passed to kableExtra::add_header_row() and kableExtra::footnote() as well (previously, was only passed to knitr::kable()).
  • The as_kable_extra(escape=, format=) arguments have been made explicit, where previously, these arguments were passed via ....
  • Breaking Change The default value of escape= is now FALSE. If users previously used as_kable_extra(escape=FALSE) and had manually escaped LaTeX/HTML characters in the body of the table, these characters will now be double escaped. To print the table without the auto-escaping that is now present, utilize the new argument as_kable_extra(addtl_fmt=FALSE)
  • Breaking Change The fmt_missing= argument was added to as_tibble(), as_kable(), and as_kable_extra() in the last release. This argument is now deprecated in as_kable() and as_kable_extra(). If a user does not want missing values formatted, they can exclude these commands with the include= argument.
  • Breaking Change The strip_md_bold= has been deprecated. The markdown syntax will automatically be stripped from headers, unless escape = FALSE and format = "latex". In that case, the markdown syntax will be converted to LaTeX commands.
  • HTML Updates
    • The default markdown syntax in the headers and spanning headers is removed.
    • Special characters in the table body, headers, spanning headers, caption, and footnote will be escaped with .escape_html().
    • The "\n" symbol is removed from the footnotes

Improvements to as_flex_table()

  • Added support for markdown syntax in {flextable} header rows by utilizing the {ftExtra} package. If this package is installed and options(gtsummary.use_ftExtra = TRUE) has been set (or the equivalent theme element), the bold/italic markdown syntax found in the headers will be styled. Otherwise, the markdown syntax is stripped from the header rows. (#1200)

New Functions

  • New function as_hux_xlsx() added to export a formatted {gtsummary} table directly to Excel.

  • Added a tbl_regression.tidycrr() method to summarize competing risks regression models. (#1169)

  • Added tidier tidy_wald_test(), a generic function that can calculate Wald test statistics for groups of variables in a model. The tidier expects the model object is supported by both vcov() and coef() to obtain the variance-covariance matrix and the coef vector.

  • Adding functions get_gtsummary_theme() and with_gtsummary_theme() for extracting the current gtsummary theme and running code with a temporarily theme.

  • Added new function modify_column_indent()--a wrapper for modify_table_styling()--to make it easier to add and remove indentation in a table.

  • Now exporting a function primarily used internally as a helper for converting a gtsummary table to gt (and other formats): .table_styling_expr_to_row_number().

  • Theme helper function check_gtsummary_theme() has been added. The function takes a gtsummary theme list as the input, and runs various consistency checks. Useful when constructing a personalized theme. This function replaces the internal checks that a passed theme element is indeed a valid theme element.

New Functionality

  • Functions bold_labels(), bold_levels(), italicize_labels(), italicize_levels() are now method functions so they can work better on tbl_cross() objects.

  • Total overhaul to the way statistics are saved and reported in modify_header(), modify_spanning_header(), modify_footnote(), and modify_caption(). There is now a standardized place to these statistics to be saved in all gtsummary tables (in x$table_styling$header in columns starting with "modify_stat_"). The modify functions have been updated to access the statistics from the header data frame. An added benefit to this structure, is that the statistics are available after tables are merged and stacked. Statistics available in modify_caption() are taken from the "label" column. (#1165, #1101)

  • Added add_global_p(anova_fun=) argument allowing users to pass custom functions to calculate global p-values when car::Anova() does not support the model type. (#1149)

  • Functions bold_labels(), bold_levels(), italicize_labels(), and italicize_levels() now bold/italicize the first column shown in the table. Previously, the "label" column (which is most often the first shown column) was styled.

  • Added theme element to pass arguments to knitr::kable() in as_kable() and as_kable_extra().

  • Updated the default function in add_glance_*(glance_fun=) for MICE models. (#1137)

  • Add tbl_butcher(keep=) argument to optionally keep some internal objects as needed. (#1148)

  • Adding Norwegian translations (#1143)

Other Updates

  • Removed use of round() in style_number(), and replaced it with a round function that does not "round-to-even". (#1140)

  • Converted the Table Gallery vignette into an FAQ+Gallery (#811)

  • Added error messaging if user tries to run add_p() or add_difference() twice. (#1209)

  • All models CIs were labelled as a Confidence Interval. Now Bayesian models will correctly label the Credible Interval. (#1196)

  • Improved error messaging the functions as_gt(), as_kable(), as_flex_table(), as_hux_table() when an object that is not class 'gtsummary' is passed. (#1188)

  • Deprecated the as_huxtable(strip_md_bold=) as {huxtable} now recognizes the markdown syntax and there is no reason to remove the markdown syntax.

  • Added huxtable::set_header_rows() to the as_hux_table() stack.

  • Improved error messaging in modify_*() functions. (#914)

  • Added style_percent() as the default formatting function for un-weighted proportions. (#1181)

  • The global options previously available have now been soft deprecated. All documentation of the global options was removed in v1.3.1. (#1085)

  • The as_flextable() function has been upgraded from a soft to a hard deprecation; use as_flex_table() instead.

  • No longer removing the survey design columns from survey objects from the columns that will be summarized in tbl_svysummary() and those summarized in tbl_uvregression(). If users previously didn't indicate which variables to summarize with include=, then the design columns will now appear in the summary tables. (#1166)

  • Added a check for functions that accept ... where nothing should be passed in the .... If a bad or misspelled argument is found, the users are informed. (#1083)

Bug Fixes

  • Fix in "emmeans" methods for add_difference() to due an argument name change in the emmeans package. We now require the most recent version of the package. (#1205)

  • Bug fix in inline_text.tbl_summary() where one could not pass a pattern only when the column argument was NULL. (#1193)

  • Fix in as_gt() when there are no hidden columns.

  • Fix in add_p.tbl_svysummary() when Wald tests were converted to flextable. The survey tidier saved the column as a matrix-column instead of a vector, which was incompatible with flextable output. (#1153)

  • Fixing Lancet theme mid-point encoding issue on Linux and MacOS. (#1146)

  • Fix when using summary type gtsummary selectors (e.g. all_continuous()) with the add_ci(style_fun=) argument. (#1141)

v1.5.2

2 years ago
  • Removed foreign reference to external functions in the top level of the package and replaced with indirect calls (the reason for the short time between releases). (#1129)

  • Updates to the way footnotes are printed in tbl_summary() when there is summary type "continuous2" present. Previously, all footnotes were removed, and now only the "continuous2" footnotes are removed. (#1127)

  • Added the continuous variable name/label to the footnote for greater clarity in tbl_continuous() (#1123)

  • Now exporting the .create_gtsummary_object() function as a utility for other packages to build gtsummary tables. (#1130)

  • Fix when add_overall() was run before add_n(). The overall row was not being omitted from the sum and the Ns were doubled. (#1126)

  • Added method "emmeans" to add_difference() for tbl_svysummary() objects.

  • Updated default add_difference() for tbl_svysummary() objects to be "emmeans" for continuous and dichotomous variables, and "smd" for categorical variables.

v1.5.1

2 years ago

New Functions

  • Added new function modify_column_alignment() to updated column alignment. Function is a wrapper for the more complex modify_table_styling() function.

  • New function tbl_strata2() that passes both the the stratified data frame as well as the stratum level to the user function. (#1091)

  • Added a add_p.tbl_continuous() method for adding p-values to tbl_continuous() tables. (#1023)

  • Added add_overall.tbl_continuous() method. (#1037)

New Functionality

  • New test option "emmeans" in add_difference() and add_p() uses the {emmeans} package to estimate marginal means/least-squares means for continuous variables, binary variables and random intercept models. (#1112)

  • Column alignment is now recognized in as_kable() and as_kable_extra(). Previously, the alignment utilized the kable() defaults and ignored any alignment instructions included in the gtsummary table styling.

  • The as_kable_extra() was updated to utilize kableExtra::column_spec() and kableExtra::cell_spec() to apply bold and italic styling. The choice of the function depends on the use of escape= in knitr::kable() (#1107)

  • Default arguments to knitr::kable() may now be overwritten by passing ... to either as_kable() or as_kable_extra(). Previously, passing a user-defined argument previously in use would result in error.

  • Added tbl_strata(.header=) argument providing greater control over the stratum headers that are added to the tables, e.g. you can now add Ns to the headers using this argument.

  • Added add_p.tbl_cross(test.args=) argument. (#1095)

  • The tbl_strata(.combine_args=) has been added that lets you control all arguments in the tbl_merge() or tbl_stack() that occurs in tbl_strata(). (#1090)

  • Added the add_ci(pattern=) argument, which makes it easier to merge the CI column with the primary statistics column. (#1029)

  • Suppress tbl_merge() spanning headers by passing tbl_merge(tab_spanner = FALSE) (#1067)

  • Functions as_tibble(), as_kable(), and as_kable_extra() gain the fmt_missing= argument that applies missing symbols to missing values. The as_tibble() argument defaults to FALSE, while the others' default is TRUE. (#1073)

  • Adding tbl_regression(conf.int=) and tbl_uvregression(conf.int=) argument. For some models, the confidence interval adds to the computation time significantly and may not be needed. This argument will omit the CI calculation. (#1052)

  • The add_stat() function was updated to accept tbl_continuous() tables.

  • Multinomial models computed using MICE are now supported. (#1065)

  • Added theme element to control the tbl_regression(conf.int=) default argument.

  • It is now possible to pass a single tbl to tbl_merge(). This is useful when using tbl_merge() as a helper in other functions. (#1068)

  • Added statistics= and digits= arguments to the add_overall() family of functions. (#1047)

  • Added digits= argument to tbl_cross(). (#1046)

Other Updates

  • Allowed modification to font_size for compact theme. (#1106)

  • Automatically reduced vertical white space between columns for compact flextable theme.

  • Improved user interface for modify_*() functions (#1064)

  • Improved error messaging throughout the package. (#1050)

  • Added link to the syntax help file to functions throughout the package. The syntax help file illustrates how to use the gtsummary selectors and details the formula-list notation. (#981)

  • Updated Spanish translation for Wilcoxon Rank-sum Test.

  • Updates and additions to Portuguese language translations. (#1098)

  • Updates to the French translations.

  • Updating the add_overall() S3 method to have a more common structure, e.g. add_overall(x, ....), where previously, the ... were not present. (#1066)

  • Updated the theme_gtsummary_journal("qjecon") to set tbl_regression(conf.int = FALSE) by default.

  • Improved error messaging in tbl_custom_summary()

  • Updated the default formatting functions in tbl_custom_summary(). Previously, summaries with character results erred because the default summary function was style_number(). This has been updated to style_sigfig() for numeric columns, and as.character() for everything else. (#983)

  • All style_*() functions will retain attribute, such as the names. (#1035, #1031, #981)

  • The add_n.tbl_regression() (which is also utilized in tbl_uvregression()) was adding the N column without applying a formatting function. The style_number() function has now been added as the default styler. (#1022)

  • Added class "tbl_continuous" to the output of tbl_continuous().

  • Adding add_p() test "mcnemar.test.wide" to calculate the p-value when the data are stored in a wide format, e.g. one column for a before value and a second column for after. The other McNemar test variant available in {gtsummary} expects data in a long format.

  • Converted tbl_split() to S3 function.

  • Update how calls to gt::fmt_missing() are constructed to be more memory efficient.

Bug Fixes

  • Fix in add_significance_stars() that led to an error when the summarized model did not have a confidence interval column.

  • Fix in as_flex_table() and as_hux_table() where reference row was not properly placed after a tbl_merge() when the merged tables share common categorical variables but different reference rows. (#1063)

  • Fix in inline_text.gtsummary() where the first level of a categorical variable could not be selected if the table had also been processed with remove_row_type(). (#1078)

  • Fix in modify_table_styling(cols_merge_pattern) when it is used with tbl_stack() followed by tbl_merge(). (#1057)

  • Bug fix in separate_p_footnotes() where test names were not being translated when theme_gtsummary_language() was set. (#1055)

  • Fix in tbl_merge() when rows in a merging table are not present in the first table. (#1033)

  • Fix in as_tibble() for nnet::multinom() regression models.

  • Fix in tbl_continuous() when include= is not specified.

  • Fix in tbl_regression() when a tidier returns CI columns that are all missing. (#1012)

  • Fix in add_p()/add_difference() when check whether the passed test is an internal method or a custom method. The previous code required Suggested packages, such as, {lme4}, {effectsize}, and {survey}, to be installed. (#1018)

Breaking Changes

  • No longer exporting assert_package(). It has been migrated to {broom.helpers} and we now use broom.helpers::.assert_package(). (#1051)

v1.5.0

2 years ago

New Functions

  • Added new function tbl_continuous() to summarize a continuous variable by 1 or more categorical variables.

  • Added new function add_ci() that adds a new column with the confidence interval for proportions/means reported in tbl_summary(). (#868)

  • Migrated a new function tbl_split() from the {bstfun} package. Function allows users to split a {gtsummary} table into multiple tables.

  • Migrated a new function separate_p_footnotes() from the {bstfun} package. Function allows users to separate the composite footnote listing the tests performed in add_p(), and replaces it with individual footnotes for each test name.

  • New function tbl_custom_summary() allowing to create a table of summary statistics using a custom summary function (#973, #976)

    • Set of helpers to be used with tbl_custom_summary(): continuous_summary(), proportion_summary(), ratio_summary()
  • New function modify_cols_merge() that can merge two or more columns in a {gtsummary} table. (#939)

  • Added function tbl_butcher() to reduce the size of a {gtsummary} table. After an object has been butchered, other {gtsummary} functions may not be able to execute on the object.

  • Added new function tidy_robust() that will add robust standard errors, confidence intervals, and p-values with tbl_regression() and tbl_uvregression(). The function is a wrapper for parameters::model_paramters(). (#979)

New Functionality

  • Added a CITATION file so users can now cite the R Journal manuscript using citation("gtsummary").

  • Added Standardized Mean Difference method to add_difference(), wrapping the {smd} package's calculations. (#966)

  • Extended add_difference() to accept tbl_svysummary() objects in addition to tbl_summary() objects.

  • Added a standardized mean difference method for tbl_svysummary() tables.

  • Added tbl_strata(.stack_group_header=) argument to include/exclude the headers when tables are combined with tbl_stack()

  • Added tbl_strata(.quiet=) argument.

  • Allow add_p() and add_difference() to be run on the same table. (#959)

  • Updated add_overall() to include the overall statistics in the df_stats tibbles saved in .$meta_data. This makes it possible to report any of the overall statistics using the inline_text(pattern=) argument.

Other Updates

  • Added a help file detailing the formula list notation used throughout the {gtsummary} package. (#981)

  • Updates to tbl_regression() documentation. The model N is no longer reported by default, and removed that section from the help file. (#998)

  • Updates to make the internal df_stats objects consistent across various {gtsummary} objects. Added internal function df_stats_to_table_body that adds the numeric df_stats tibble to .$table_body. The formatting functions are also added for the new columns to .$table_styling$fmt_fun. This function is now used in inline_text.gtsummary() to prepare the returned statistics (#921)

  • Now using broom::tidy() to prepare the car::Anova() results. This will be more stable than the version originally written. (#898)

  • The function assert_package() now takes the minimum required version of the package from the DESCRIPTION file, and the function is now exported.

  • Now using broom::tidy() to prepare aov() test results in add_p.tbl_summary(), which adds additional columns to .$table_body() (#956)

  • Updated the README to include links to a recording of a gtsummary presentation and to the RStudio Education blog post.

  • Removed maturing lifecycle tag from README.

  • Updated deprecated function workflows::pull_workflow_fit(x) to workflows::extract_fit_parsnip(x).

Bug Fixes

  • Fix in tbl_summary() when a factor variable is passed that is all NA with no specified levels. (#977)

  • Fix in add_p.tbl_summary() when a factor variable with all NA values is passed. (#977)

  • Bug fix for the add_difference(estimate_fun=) argument.

Breaking Changes

  • Updated add_p.tbl_summary(test = . ~ "mcnemar.test", group = id) syntax to require the group= argument to align with the paired Wilcoxon rank-sum test and paired t-test syntax.

  • Deleted deprecated functions add_comparison(), add_global(), tab_style_bold_p(), tab_style_bold_labels(), tab_style_italicize_levels(), tab_style_italicize_labels(), tab_style_bold_levels().

  • The following deprecated arguments have been removed: tbl_summary(group=), as_gt(omit=).

  • The survival package has been moved from Imports to Suggests, and will no longer automatically be installed when {gtsummary} is installed. Additionally, survival::Surv() is no longer re-exported with the package.