This function takes a regression model object and returns a formatted table that is publication-ready. The function is highly customizable allowing the user to obtain a bespoke summary table of the regression model results. Review the tbl_regression vignette for detailed examples.

  label = NULL,
  exponentiate = FALSE,
  include = everything(),
  show_single_row = NULL,
  conf.level = NULL,
  intercept = FALSE,
  estimate_fun = NULL,
  pvalue_fun = NULL,
  tidy_fun = NULL,
  show_yesno = NULL,
  exclude = NULL



Regression model object


List of formulas specifying variables labels, e.g. list(age ~ "Age, yrs", stage ~ "Path T Stage")


Logical indicating whether to exponentiate the coefficient estimates. Default is FALSE.


Variables to include in output. Input may be a vector of quoted variable names, unquoted variable names, or tidyselect select helper functions. Default is everything().


By default categorical variables are printed on multiple rows. If a variable is dichotomous (e.g. Yes/No) and you wish to print the regression coefficient on a single row, include the variable name(s) here--quoted and unquoted variable name accepted.


Must be strictly greater than 0 and less than 1. Defaults to 0.95, which corresponds to a 95 percent confidence interval.


Logical argument indicating whether to include the intercept in the output. Default is FALSE


Function to round and format coefficient estimates. Default is style_sigfig when the coefficients are not transformed, and style_ratio when the coefficients have been exponentiated.


Function to round and format p-values. Default is style_pvalue. The function must have a numeric vector input (the numeric, exact p-value), and return a string that is the rounded/formatted p-value (e.g. pvalue_fun = function(x) style_pvalue(x, digits = 2) or equivalently, purrr::partial(style_pvalue, digits = 2)).


Option to specify a particular tidier function if the model is not a vetted model or you need to implement a custom method. Default is NULL






A tbl_regression object

Setting Defaults

If you prefer to consistently use a different function to format p-values or estimates, you can set options in the script or in the user- or project-level startup file, '.Rprofile'. The default confidence level can also be set.


The N reported in the output is the number of observations in the data frame model.frame(x). Depending on the model input, this N may represent different quantities. In most cases, it is the number of people or units in your model. Here are some common exceptions.

  1. Survival regression models including time dependent covariates.

  2. Random- or mixed-effects regression models with clustered data.

  3. GEE regression models with clustered data.

This list is not exhaustive, and care should be taken for each number reported.

Example Output

Example 1

Example 2

Example 3

See also


Daniel D. Sjoberg


# Example 1 ---------------------------------- library(survival) tbl_regression_ex1 <- coxph(Surv(ttdeath, death) ~ age + marker, trial) %>% tbl_regression(exponentiate = TRUE) # Example 2 ---------------------------------- tbl_regression_ex2 <- glm(response ~ age + grade, trial, family = binomial(link = "logit")) %>% tbl_regression(exponentiate = TRUE) # Example 3 ---------------------------------- library(lme4, warn.conflicts = FALSE, quietly = TRUE)
#> Registered S3 methods overwritten by 'lme4': #> method from #> cooks.distance.influence.merMod car #> influence.merMod car #> dfbeta.influence.merMod car #> dfbetas.influence.merMod car
tbl_regression_ex3 <- glmer(am ~ hp + (1 | gear), mtcars, family = binomial) %>% tbl_regression(exponentiate = TRUE)
#> Registered S3 methods overwritten by 'broom.mixed': #> method from #> augment.lme broom #> augment.merMod broom #> glance.lme broom #> glance.merMod broom #> glance.stanreg broom #> tidy.brmsfit broom #> tidy.gamlss broom #> tidy.lme broom #> tidy.merMod broom #> tidy.rjags broom #> tidy.stanfit broom #> tidy.stanreg broom