broom 0.7.3

In broom 0.7.0, we introduced an error for model objects that subclassed lm and relied on tidy.lm(), or similarly for tidy.glm(). Tidiers for these objects were supported unintentionally, and we worried that tidiers for these objects would silently report innaccurate results.

In hindsight, this change was unnecessarily abrupt. We’ve decided to roll back this change, instead providing the following warning before allowing such objects to fall back to the lm/glm tidier methods:

Tidiers for objects of class {subclass} are not maintained by the broom team, and are only supported through the {dispatched_method} tidier method. Please be cautious in interpreting and reporting broom output."

In addition,

broom 0.7.2

broom 0.7.1

While broom 0.7.1 is a minor release, it includes a number of exciting new features and bug fixes!

New tidiers

Improvements to existing tidiers

One of the more major improvements in this release is the addition of the interval argument to some augment methods for confidence, prediction, and credible intervals. These columns will be consistently labeled .lower and .upper! (#908 by @grantmcdermott, #925 by @bwiernik)

In addition…

Bug fixes


We followed through with the planned deprecation of character vector tidiers in this release. Other vector tidiers that were soft-deprecated in 0.7.0 will be fully deprecated in a later release.

broom 0.7.0

broom 0.7.0 is a major release with a large number of new tidiers, soft-deprecations, and planned hard-deprecations of functions and arguments.

Big picture changes


This release of broom soft-deprecates the following functions and tidier methods:

We have also gone forward with our planned mixed model deprecations, and have removed the following methods, which now live in broom.mixed:

Minor breaking changes

A refactoring of augment() methods

The internals of augment.*() methods have largely been overhauled.

New tidiers

Improvements to existing tidiers

Bug fixes

Other changes

For developers and contributors

broom 0.5.6

broom 0.5.5

broom 0.5.4

broom 0.5.3

broom 0.5.2

broom 0.5.1

broom 0.5.0

Tidiers now return tibble::tibble()s. This release also includes several new tidiers, new vignettes and a large number of bug fixes. We’ve also begun to more rigorously define tidier specifications: we’ve laid part of the groundwork for stricter and more consistent tidying, but the new tidier specifications are not yet complete. These will appear in the next release.

Additionally, users should note that we are in the process of migrating tidying methods for mixed models and Bayesian models to broom.mixed. broom.mixed is not on CRAN yet, but all mixed model and Bayesian tidiers will be deprecated once broom.mixed is on CRAN. No further development of mixed model tidiers will take place in broom.

Breaking changes

Almost all tidiers should now return tibbles rather than data.frames. Deprecated tidying methods, Bayesian and mixed model tidiers still return data.frames.

Users are mostly to experience issues when using augment in situations where tibbles are stricter than data frames. For example, specifying model covariates as a matrix object will now error:


fit <- rq(stack.loss ~ stack.x, tau = .5)
#> Error: Column `stack.x` must be a 1d atomic vector or a list

This is because the default data argument data = model.frame(fit) cannot be coerced to tibble.

Another consequence of this is that augment.survreg and augment.coxph from the survival package now require that the user explicitly passes data to either the data or newdata arguments.

These restrictions will be relaxed in an upcoming release of broom pending support for matrix-columns in tibbles.

Developers are likely to experience issues:

New vignettes

This version of broom includes several new vignettes:

Several old vignettes have also been updated:


Other changes


Many many thanks to all the following for their thoughtful comments on design, bug reports and PRs! The community of broom contributors has been kind, supportive and insightful and I look forward to working you all again!

[@atyre2](, [@batpigandme](, [@bfgray3](, [@bmannakee](, [@briatte](, [@cawoodjm](, [@cimentadaj](, [@dan87134](, [@dgrtwo](, [@dmenne](, [@ekatko1](, [@ellessenne](, [@erleholgersen](, [@ethchr](, [@Hong-Revo](, [@huftis](, [@IndrajeetPatil](, [@jacob-long](, [@jarvisc1](, [@jenzopr](, [@jgabry](, [@jimhester](, [@josue-rodriguez](, [@karldw](, [@kfeilich](, [@larmarange](, [@lboller](, [@mariusbarth](, [@michaelweylandt](, [@mine-cetinkaya-rundel](, [@mkuehn10](, [@mvevans89](, [@nutterb](, [@ShreyasSingh](, [@stephlocke](, [@strengejacke](, [@topepo](, [@willbowditch](, [@WillemSleegers](, [@wilsonfreitas](, and [@MatthieuStigler](

broom 0.4.4

broom 0.4.3

broom 0.4.2

broom 0.4.1

broom 0.4.0

broom 0.3.7

broom 0.3.6

broom 0.3.5

broom 0.3.4

Unit tests in tests/testthat/test-augment.R were added to ensure consistency across these models.

regressions <- mtcars %>% group_by(cyl) %>% do(mod = lm(mpg ~ wt, .)) regressions %>% tidy(mod) regressions %>% augment(mod)

See ?rowwise_df_tidiers for more.

broom 0.3

broom 0.2