Increased minimum required R version to 4.1.
Resolved errors with the 2.0.85 update of the epiRpackage.
tidy.coeftest now returns non-NA valuesforconf.low andconf.high for a model fittedwith only a constant term and cluster robust std errors computed usingvcovCL fromsandwich (#1227).
Added support for new column name in lme4 ANOVA output. (lme4tidiers are technically supplied by broom.mixed, but intermediate outputis routed through broom’stidy.anova() method)(#1239).
Correctednobs entries inglance.coxph() output: the package used to returnlength(object$linear.predictors) (equal tonrather thannevent) and now uses survival’s method(#1224).
Corrected confidence interval values intidy.boot()and addressed errors when bootstrapping confidence intervals formultiple terms (#1212).
Reverted deprecation of tidiers for objects from the marginspackage now that the package is back on CRAN (#1220).
Addressed failure intidy.anova() ahead of upcomingcar release (#1215).
Clarified documentation for a number of cases where dots weredocumented as unused but actually passed to internal functions(#1214).
Addressed error inaugment.betareg() andaugment.betamfx() withdata = NULL andnon-nullnewdata (#1216, #1218).
glance.lm() now returns non-NA valuesforstatistic,p.value, anddffor models fitted with a single predictor and no intercept (
Added support forconf.level inaugment.lm() (#1191 by@zietzm).
Added support for columnsadj.r.squared andnpar inglance() method for objects outputtedfrommgcv::gam() (#1172).
Soft-deprecated tidiers for margins objects, as the package wasarchived from CRAN in April 2024. In the case that the package is backon CRAN before the next package release, broom will once again Suggestand test support for the package (#1200).
Moved forward with deprecation of tidiers for objects from the sppackage. See resources linked intidymodels/broom#1142for more information on migration from retiring spatialpackages.
While this broom release contains no changes to thetidy.survfit() method for objects from the survivalpackage, the package has bumped the minimum required version forsurvival. Before survival 3.6-4,tidy.survfit() propagated“inconsistent”n.censor values from survival formulti-state models (#1195).
Corrected confidence interval values for precision components intidy.betareg() output (#1169).
Fixed bug in tidier forcar::linearHypothesis()output with long formulas (#1171).
Corrected coefficient values intidy.varest() output(#1174).
tidy.coxph() will now pass its ellipses... tosummary() internally (#1151 by@ste-tuf).
Transitioned the deprecation of theregion argumenttotidy.SpatialPolygonsDataFrame from a warn- to ahard-deprecation (#1142).
Removed maptools and rgeos as Suggested packages ahead of theirretirement. sp tidiers will be removed from a future release of thepackage (#1142).
Addressed bug in mlogit tidiers whereaugment.mlogit() would fail if supplied a model fitted witha non-defaultdfidx() (#1156 by@gregmacfarlane).
Addressed bug in ANOVA tidiers wheretidy.anova()would fail if passed a model with many predictors (#1159 by@jwilliman).
Addressed warnings in ANOVA tidiers for unrecognized column namesResid..Df,Resid..Dev, andDeviance; those columns will be renameddf.residual,residual.deviance, anddeviance, respectively (#1159 by@jwilliman).
intercept argument totidy.aov(),a logical indicating whether to include information on the intercept asthe first row of results (#1144 by@victor-vscn).augment.glm() where the.std.resid column always contained standardized devianceresiduals regardless of the value passed to thetype.residuals argument (#1147).tidy.multinom() where theconf.level argument would be ignored.data argument foraugment.coxph() andaugment.survreg() has beentransitioned fromNULL tomodel.frame(x)(#1126 by@capnrefsmmat).Imports toSuggests.augment() results would not includeresiduals when the response term included a function call (#1121, #946,#937, #124).tidy.lm() andtidy.glm() for full-rank fits (#1112 by@capnrefsmmat).tidy.sparseMatrix(),tidy.dgCMatrix(), andtidy.dgTMatrix(). Notethattidy.confusionMatrix(), for relevant objects outputtedfrom the caret package, is unaffected (#1113).tidy.anova() works again withanovaobjects from thelme4 package (broken by addition of theterms column in the previous release)broom 1.0.0 is the first “production” release of the broom package,and includes a number of notable changes to both functionality andgovernance.
As of this release, the broom team will be following a set ofguidelines that clarify the scope of further development on the package.Given the package’s wide use and long history, these guidelinesprioritize backward compatibility over internal consistency andcompleteness. You can read those guidelineshere!
We’ve also made notable changes to error handling in thisrelease:
tidy() methods will now warn when supplied anexponentiate argument if it will be ignored.augment() methods will now warn when supplied anewdata argument if it will be ignored.lm andglm is now displayed only once persession, per unique dispatch. That is, if aclass_a objectis tidied using a(g)lm method, broom will not warn whentidyingclass_a objects for the rest of the session, but ifaclass_b object is tidied using a(g)lmmethod in the same session, broom will warn again (#1101).Other fixes and improvements:
exponentiate argument totidy.boot()(#1039).tidy.htest() converting matrix-columns tovector-columns (#1081).tidy.glht() withconf.int = TRUE (#1103).tidy.zoo() when input data does nothavecolnames (#1080).tidy.svyolr() whenp.values = TRUE. Instead of aliasingtidy.polr() directly,tidy.svyolr() lightlywraps that method and warns ifp.values is supplied(#1107).term column and introduces support forcar::lht() output intidy.anova() (#1106 by@grantmcdermott).glance.anova method (which previouslydispatched to theglance.data.frame() tidier, #1106 by@grantmcdermott).This update makes significant improvements to documentation, fixes anumber of bugs, and brings the development flow of the package up todate with other packages in the tidymodels.
In the big picture, this release:
\dontrun or\donttest have been workshopped to run reliably.glance.fixest error when model includes only fixedeffects and no regressors (#1018 by@arcruz0,#1088 by@vincentarelbundock).tidy.speedlm(#1084 by@cgoo4,#1087 by@vincentarelbundock).nobs column to the output ofglance.svyglm (#1085 by@fschaffner,#1086 by@vincentarelbundock).tidy.prcomp description entries use consistentpunctuation (#1072 by@PursuitOfDataScience).glance.fixest andtidy.btergm.MASS::polr output in thecorrespondingtidy andaugment methods.Nearly identical source to broom 0.7.11—updates the maintainer emailaddress to an address listed in other CRAN packages maintained by thesame person.
augment.rqs. Now function preserves the originaldata.frame names also when the inputdata.frame only has one column (#1052 by@ilapros).tidy.rma whenx$ddfhas length greater than 1 (#1064 by@wviechtb).glance.lavaan in anticipation of upcomingtidyr release (#1067 by@DavisVaughan).tidy.crr(). Thetidy.crr(conf.level=) argument was previously ignored(#1068 by@ddsjoberg).pysch::mediate output isdispatched totidy.mediate (#1037 by@LukasWallrich).tidy.rma(#1041 by@TarenSanders)augment_columns(); most package users should useaugment() in favor ofaugment_columns(). See?augment_columns for more details.emmeans by fixing non-standardcolumn names in case of asymptotically derived inferential statistics.(#1046 by@crsh)augment.mlogit and adds.resid column to output. (#1045,#1053,#1055, and#1056 by@jamesrrae and@gregmacfarlane)glance.survfit().tidy.crr(), which werepreviously exponentiated whenexponentiate = FALSE(#1023 by@leejasme)Rchoice tidiers, as the newest 0.3-3 releaserequires R 4.0+ and does not re-export needed generics.ergm tidiers in anticipation of changes inlater releases. (#1034 by@krivit)glance.ergm related to handling of MCMCdetails.tidy.epi.2by2 that resulted in errors withnew version ofepiR (#1028 by@nt-williams)exponentiate argument totidy.gam()tidier applicable for parametric terms (#1013 by@ddsjoberg)exponentiate argument totidy.negbin() tidier (#1011 by@ddsjoberg)spdep tidiers following breakingchanges in the most recent releaseaugment tidiers resulting in.fitted and.se.fit array columns.y non-numeric aftertidy_xyz (#973 by@jiho)MASS:glm.nb (#998 by@joshyam-k)tidy.fixest that sometimes preventedarguments likese from being used (#1001 by@karldw)tidy.fixest that resulted in errors whencolumns with namex are present (#1007 by@grantmcdermott)gamlsstidiers in favor of those provided inbroom.mixednnet::multinom tidier in the case thatthe response variable has only two levels (#993 by@vincentarelbundock and@hughjonesd)broom 0.7.4 introduces tidier support for a number of new modelobjects and improves functionality of many existing tidiers!
Rchoice objects (#961 by@vincentarelbundock and@Nateme16)car::leveneTest(#968 by@vincentarelbundock and@mkirzon)cmprsk::crr(#971 and#552 by@vincentarelbundock and@margarethannum)augment() method forgam objects(#975 and#645 by@vincentarelbundock)vars objects (#979 and#161 by@vincentarelbundock and@Diego-MX)This release also restores tidiers forfelm objects fromthelfe package, which was recently unarchived fromCRAN.
tidy.emmGrid can now returnstd.error andconf.* columns at the same time. (#962 by@vincentarelbundock and@jmbarbone)tidy.garch can now produce confidence intervals(#964 by@vincentarelbundock and@IndrajeetPatil)tidy.coxph can now report confidence intervals onmodels utilizing penalized/clustering terms (#966 by@vincentarelbundock and@matthieu-faron)augment.lm now works when some regression weights areequal to zero (#965 by@vincentarelbundock and@vnijs)tidy.coxph can now handle models utilizingpenalized/clustering terms (#966 and#969 by@vincentarelbundock,@matthieu-faron, and@KZARCA)tidy.speedglm on R 4.0.0+ (#974by@uqzwang)#977 and#666 by@vincentarelbundock and@atyre2)In broom0.7.0, we introduced an error for model objectsthat subclassedlm and relied ontidy.lm(), orsimilarly fortidy.glm(). Tidiers for these objects weresupported unintentionally, and we worried that tidiers for these objectswould silently report inaccurate results.
In hindsight, this change was unnecessarily abrupt. We’ve decided toroll back this change, instead providing the following warning beforeallowing such objects to fall back to thelm/glm tidier methods:
Tidiers for objects of class {subclass} are not maintained by thebroom team, and are only supported through the {dispatched_method}tidier method. Please be cautious in interpreting and reporting broomoutput.”
In addition,
summary.lm objects(#953 by@grantmcdermott)lfe package, which wasarchived from CRAN.While broom 0.7.1 is a minor release, it includes a number ofexciting new features and bug fixes!
margins objects. (#700 by@grantmcdermott)mlogit objects(#887 by@gregmacfarlane)glance.coeftest() method (#932 by@grantmcdermott)One of the more major improvements in this release is the addition oftheinterval argument to someaugment methodsfor confidence, prediction, and credible intervals. These columns willbe consistently labeled.lower and.upper!(#908 by@grantmcdermott,#925 by@bwiernik)
In addition…
glance.aov() method to include anr.squared column!glance.survfit() now passes... tosummary.survfit() to allow for adjustment of RMST and othermeasures (#880 by@vincentarelbundock)glm andlm now error more informatively.newdata warning message inaugment.*() output when thenewdata didn’tcontain the response variable—augment methods no longer expect theresponse variable in the suppliednewdata argument.(#897 by@rudeboybert)tidy.geeglm() not beingsensitive to theexponentiate argument(#867)augment.fixest() returning residuals in the.fitted column. The method also now takes atype.residuals argument and defaults to the sametype.predict argument as thefixestpredict() method. (#877 by@karldw)tidy.felm confidence interval bug. Replaces“robust” argument with “se.type”. (#919 by@grantmcdermott; supersedes#818 by@kuriwaki)tidy.drc() where some term labels wouldresult in the overwriting of entries in thecurve column(#914)tidy.zoo() (#916 by@WillemVervoort)tidy.prcomp() assigning thewrong PC labels from “loadings” and “scores” matrices (#910by@tavareshugo)tidy.polr() bug where p-values could only bereturned ifexponentiate = FALSE.We followed through with the planned deprecation of character vectortidiers in this release. Other vector tidiers that were soft-deprecatedin 0.7.0 will be fully deprecated in a later release.
broom 0.7.0 is a major release with a large number ofnew tidiers, soft-deprecations, and planned hard-deprecations offunctions and arguments.
We have changed how we report degrees of freedom forlm objects (#212, #273). This is especially important forinstructors in statistics courses. Previously thedf columninglance.lm() reported the rank of the design matrix. Nowit reports degrees of freedom of the numerator for the overallF-statistic. This is equal to the rank of the model matrix minus one(unless you omit an intercept column), so the newdf shouldbe the olddf minus one.
We are moving away from supportingsummary.*()objects. In particular, we have removedtidy.summary.lm()as part of a major overhaul of internals. Instead of callingtidy() onsummary-like objects, please calltidy() directly on model objects moving forward.
We have removed all support for thequick argumentintidy() methods. This is to simplify internals and is formaintainability purposes. We anticipate this will not influence manyusers as few people seemed to use it. If this majorly cramps your style,let us know, as we are considering a new verb to return only modelparameters. In the meantime,stats::coef() together withtibble::enframe() provides most of the functionality oftidy(..., quick = TRUE).
Allconf.int arguments now default toFALSE, and allconf.level arguments nowdefault to0.95. This should primarily affecttidy.survreg(), which previously always returned confidenceintervals, although there are some others.
Tidiers foremmeans-objects use the argumentsconf.int andconf.level instead of relying onthe argument names native to theemmeans::summary()-methods(i.e.,infer andlevel). Similarly,multcomp-tidiers now include a call tosummary() as previous behavior was akin to setting the nowremoved argumentquick = TRUE. Both families of tidiers nowuse theadj.p.value column name when appropriate. Finally,emmeans-,multcomp-, andTukeyHSD-tidiers now consistently use the column namescontrast andnull.value instead ofcomparison,level1 andlevel2, orlhs andrhs (see #692).
This release ofbroom soft-deprecates the followingfunctions and tidier methods:
bootstrap()confint_tidy()fix_data_frame()finish_glance()augment.glmRob()tidy.table() andtidy.ftable() have beendeprecated in favor oftibble::as_tibble()tidy.summaryDefault() andglance.summaryDefault() have been deprecated in favor ofskimr::skim()We have also gone forward with our planned mixed model deprecations,and have removed the following methods, which now live inbroom.mixed:
tidy.brmsfit()tidy.merMod(),glance.merMod(),augment.merMod()tidy.lme(),glance.lme(),augment.lme()tidy.stanreg(),glance.stanreg()tidyMCMC(),tidy.rjags(),tidy.stanfit()augment.factanal() now returns a tibble with columnsnames.fs1,.fs2, …, instead offactor1,factor2, … (#650)
We have renamed the output ofaugment.htest(). Inparticular, we have renamed the.residuals column to.resid and the.stdres to.std.resid for consistency. These changes will only affectchi-squared tests.
tidy.ridgelm() now always return aGCVcolumn and never returns anxm column. (#533 by
tidy.dist() no longer supports theupper argument.
augment() methodsThe internals ofaugment.*() methods have largely beenoverhauled.
If you pass a dataset toaugment() via thedata ornewdata arguments, you are nowguaranteed that the augmented dataset will have exactly the same numberof rows as the original dataset. This differs from previous behaviorprimarily when there are missing values. Previouslyaugment() would drop rows containingNA. Thisshould no longer be the case.
augment.*() methods no longer accept anna.action argument.
In previous versions, severalaugment.*() methodsinherited theaugment.lm() method, but required additionsto theaugment.lm() method itself. We have shifted awayfrom this approach in favor of re-implementing manyaugment.*() methods as standalone methods making use ofinternal helper functions. As a result,augment.lm() andsome related methods have deprecated (previously unused)arguments.
augment() tries to give an informative error whendata isn’t the original training data.
The.resid column in the output ofaugment().* methods is now consistently defined asy - y_hat
anova objects from thecar package(#754)pam objects from thecluster package (#637bydrm objects from thedrc package (#574 by@edild)summary_emm objects from theemmeanspackage (#691 byepi.2by2 objects from theepiR package(#711)fixest objects from thefixest package(#785 by@karldw)regsubsets objects from theleaps package(#535)lm.beta objects from thelm.beta package(#545 byrma objects from themetafor package (#674bymfx,logitmfx,negbinmfx,poissonmfx,probitmfx, andbetamfx objects from themfx package (#700 bylmrob andglmrob objects from therobustbase package (#205, #505)sarlm objects from thespatialreg package(#847 byspeedglm objects from thespeedglm package(#685)svyglm objects from thesurvey package(#611)systemfit objects from thesystemfitpackage (byglance.aov(),which used to inherit from theglance.lm() method and nowcontains only the following columns:logLik,AIC,BIC, deviance,df.residual,andnobs (see #212). Note thattidy.aov()gives more complete information about degrees of freedom in anaov object.tidy.felm() now has arobust = TRUE/FALSE option that supports robust and clusterstandard errors. (#781 by
Make.fitted values respecttype.predict argument ofaugment.clm().(#617)
Return factor rather than numeric class predictions in.fitted ofaugment.polr(). (#619) Add anoption to returnp.values intidy.polr().(#833 by
tidy.kmeans() now uses the names of the inputvariables in the output by default. Setcol.names = NULL torecover the old behavior.
Previously, F-statistics for weak instruments were returnedthroughglance.ivreg(). F-statistics are now returnedthroughtidy.ivreg(instruments = TRUE). Default istidy.ivreg(instruments = FALSE).glance.ivreg() still returns Wu-Hausman and Sargan teststatistics.
glance.biglm() now returns adf.residual column.
tidy.prcomp() argumentmatrix gainednew options"scores","loadings", and"eigenvalues". (#557 by
tidy_optim() now provides the standard error if theHessian is present. (#529 by
tidy.htest() column names are now run throughmake.names() to ensure syntactic correctness. (#549 by
tidy.lmodel2() now returns ap.valuecolumn. (#570)
tidy.lsmobj() gained aconf.intargument for consistency with other tidiers.
tidy.polr() now returns p-values ifp.values is set to TRUE and the model does not containfactors with more than two levels.
tidy.zoo() now doesn’t change column names that havespaces or other special characters (previously they were converted todata.frame friendly column names bymake.names.)
glance.lavaan() now uses lavaan extractor functionsinstead of subsetting the fit object manually. (#835)
glance.lm() no longer errors when only an interceptis provided as an explanatory variable. (#865)
tidy.survreg() whenrobust isset toTRUE in model fitting (#842, #728)glance.lavaan(): address confidenceinterval error (#577) and correct reportednobs andnorig (#835)tibble (#824)glance.*() methods have been refactored inorder to return a one-row tibble even when the model matrix isrank-deficient (#823)tidy.drc() (#798)glm andlm in order to error more informatively. (#749, #736, #708,#186)augment.kmeans() to work with maskeddata (#609)augment.Mclust() to work on univariatedata (#490)tidy.htest() to supports equalvariances (#608)tidy.boot() to supportconfidence intervals (#581)tidy.polr() when passedconf.int = TRUE (#498)Manyglance() methods now return anobscolumn, which contains the number of data points used to fit the model!(#597 by
tidy() no longer checks for a log or logit link whenexponentiate = TRUE, and we have refactored to removeextraneousexponentiate arguments. If you setexponentiate = TRUE, we assume you know what you are doingand that you want exponentiated coefficients (and confidence intervalsifconf.int = TRUE) regardless of link function.
We now userlang::arg_match() when possible insteadofarg.match() to give more informative errors on argumentmismatches.
The package’s site has moved from https://broom.tidyverse.org/ tohttps://broom.tidymodels.org/.
Revised several vignettes and moved them to the tidymodels.orgwebsite. The existing vignettes will now simply link to the revisedversions.
Many improvements to consistency and clarity ofdocumentation.
Various warnings resulting from changes to the tidyr API inv1.0.0 have been fixed. (#870)
Removed dependencies on reshape2 and superseded functions indplyr.
All documentation now links to help files rather thantopics.
Moved core tests to themodeltests package.
Generally, after this release, the broom dev team will first askthat attempts to add tidier methods supporting a model object are firstdirected to the model-owning package. An article describing bestpractices in doing so can be found on the {tidymodels} website athttps://www.tidymodels.org/learn/develop/broom/, and we will continueadding additional resources to that article as we develop them. In thecase that the maintainer is uninterested in taking on the tidiermethods, please note this in your issue or PR.
Added a new vignette discussing how to implement new tidiermethods in non-broom packages.
tibble 3.0.0 release.Removedxergm dependency.Fixes failing CRAN checks
Changes to accommodate ergm 3.10 release.tidy.ergm() no longer has aquick argument.The old default ofquick = FALSE is now the onlyoption.
tidy(),glance() andaugment() are now re-exported from thegenerics package.Tidiers now returntibble::tibble()s. This release alsoincludes several new tidiers, new vignettes and a large number of bugfixes. We’ve also begun to more rigorously define tidier specifications:we’ve laid part of the groundwork for stricter and more consistenttidying, but the new tidier specifications are not yet complete. Thesewill appear in the next release.
Additionally, users should note that we are in the process ofmigrating tidying methods for mixed models and Bayesian models tobroom.mixed.broom.mixed is not on CRAN yet,but all mixed model and Bayesian tidiers will be deprecated oncebroom.mixed is on CRAN. No further development of mixedmodel tidiers will take place inbroom.
Almost all tidiers should now returntibbles rather thandata.frames. Deprecated tidying methods, Bayesian and mixedmodel tidiers still returndata.frames.
Users are mostly to experience issues when usingaugment in situations where tibbles are stricter than dataframes. For example, specifying model covariates as a matrix object willnow error:
library(broom)library(quantreg)fit<-rq(stack.loss~ stack.x,tau = .5)broom::augment(fit)#> Error: Column `stack.x` must be a 1d atomic vector or a listThis is because the defaultdata argumentdata = model.frame(fit) cannot be coerced totibble.
Another consequence of this is thataugment.survreg andaugment.coxph from thesurvival package nowrequire that the user explicitly passes data to either thedata ornewdata arguments.
These restrictions will be relaxed in an upcoming release ofbroom pending support for matrix-columns in tibbles.
Developers are likely to experience issues:
subsetting tibbles with[, which returns a tibblerather than a vector.
setting rownames on tibbles, which is deprecated.
using matrix and vector tidiers, now deprecated.
handling the additional tibble classestbl_df andtbl beyond thedata.frame class
linking to defunct documentation files – broom recently moved alltidiers to aroxygen2 template based documentationsystem.
This version ofbroom includes several newvignettes:
vignette("available-methods", package = "broom")contains a table detailing which tidying methods are available
vignette("adding-tidiers", package = "broom") is anin-progress guide for contributors on how to add new tidiers tobroom
vignette("glossary", package = "broom") containstables describing acceptable argument names and column names for thein-progress new specification.
Several old vignettes have also been updated:
vignette("bootstrapping", package = "broom") now relieson thersample package and atidyr::nest-purrr::map-tidyr::unnestworkflow. This is now the recommended workflow for working with multiplemodels, as opposed to the olddplyr::rowwise-dplyr::do based workflow.Matrix and vector tidiers have been deprecated in favor oftibble::as_tibble andtibble::enframe
Dataframe tidiers and rowwise dataframe tidiers have beendeprecated
bootstrap() has been deprecated in favor of thersample
inflate has been removed frombroom
Thealpha argument has been removed fromquantreg tidy methods
Theseparate.levels argument has been removed fromtidy.TukeyHSD. To obtain the effect ofseparate.levels = TRUE, users maytidyr::separate after tidying. This is consistent with themultcomp tidier behavior.
Thefe.error argument was removed fromtidy.felm. When fixed effects are tidier, their standarderrors are now always included.
Thediag argument intidy.dist has beenrenameddiagonal
Advice to help beginners make PRs (#397 by
glance support forarima objects fitwithmethod = "CSS" (#396 by
A bug fix to re-enable tidyingglmnet objects withfamily = multinomial (#395 by
A bug fix to allow tidyingquantreg intercept onlymodels (#378 by
A bug fix foraovlist objects (#377 by
Support forglmnetUtils objects (#352 by
A bug fix to allowtidy_emmeans to handle columnnames with dashes (#351 by
augment.felm no longer returns.fe_ and.comp columns
Support saved formulas inaugment.felm (#347 by
confint_tidy now drops rows of allNA(#345 by
A new tidier forcaret::confusionMatrix objects(#344 by
Tidiers forKendall::Kendall objects (#343 by
A new tidying method forcar::durbinWatsonTestobjects (#341 by
glance throws an informative error forquantreg:rq models fit with multipletauvalues (#338 by
tidy.glmnet gains the ability to retain zero-valuedcoefficients with areturn_zeros argument that defaults toFALSE (#337 by
tidy.manova now retains aResiduals row(#334 by
Tidiers forordinal::clm,ordinal::clmm,survey::svyolr andMASS::polr ordinal model objects (#332 by
Support foranova objects fromcar::Anova (#325 by
Tidiers fortseries::garch models (#323 by
Removed dependency onpsych package (#313 by
Improved error messages (#303 by
Compatibility with newrstanarm andloopackages (#298 by
Support for tidying lists return byirlba::irlba
A truly huge increase in unit tests (#267 by
Bug fix fortidy.prcomp when missing labels (#265 by
Added apkgdown site at https://broom.tidyverse.org/(#260 by
Added tidiers forAER::ivreg models (#247 by
Added tidiers for thelavaan package (#233 by
Addedconf.int argument totidy.coxph(#220 by
Addedaugment method for chi-squared tests (#138 by
changed default se.type fortidy.rq to match that ofquantreg::summary.rq() (#404 by
Added argumentquick fortidy.plm andtidy.felm (#502 and #509 by
Many small improvements throughout
Many many thanks to all the following for their thoughtful commentson design, bug reports and PRs! The community of broom contributors hasbeen kind, supportive and insightful and I look forward to working youall again!
@atyre2,@batpigandme,@bfgray3,@bmannakee,@briatte,@cawoodjm,@cimentadaj,@dan87134,@dgrtwo,@dmenne,@ekatko1,@ellessenne,@erleholgersen,@ethchr,@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.
Fixed gam tidiers to work with “Gam” objects, due to an update ingam 1.15. This fixes failing CRAN tests
Improved test coverage (thanks to #267 from Derek Chiu)
Changed the deprecateddplyr::failwith topurrr::possibly
augment andglance on NULLs now returnan empty data frame
Deprecated theinflate() function in favor oftidyr::crossing
Fixed confidence intervals in the gmm tidier (thanks to #242 fromDavid Hugh-Jones)
Fixed a bug in bootstrap tidiers (thanks to #167 from JeremyBiesanz)
Fixed tidy.lm withquick = TRUE to return terms ascharacter rather than factor (thanks to #191 from MatteoSostero)
Added tidiers forivreg objects from the AER package(thanks to #245 from David Hugh-Jones)
Added tidiers forsurvdiff objects from the survivalpackage (thanks to #147 from Michał Bojanowski)
Added tidiers foremmeans from the emmeans package(thanks to #252 from Matthew Kay)
Added tidiers forspeedlm andspeedglmfrom the speedglm package (#685, thanks to #248 from DavidHugh-Jones)
Added tidiers formuhaz objects from the muhazpackage (thanks to #251 from Andreas Bender)
Added tidiers fordecompose andstlobjects from stats (thanks to #165 from Aaron Jacobs)
Added tidiers forlsmobj andref.gridobjects from the lsmeans package
Added tidiers forbetareg objects from the betaregpackage
Added tidiers forlmRob andglmRobobjects from the robust package
Added tidiers forbrms objects from the brms package(thanks to #149 from Paul Buerkner)
Fixed tidiers for orcutt 2.0
Changedtidy.glmnet to filter out rows whereestimate == 0.
Updates torstanarm tidiers (thanks to #177 fromJonah Gabry)
Fixed issue with survival package 2.40-1 (thanks to #180 fromMarcus Walz)
Added AppVeyor, codecov.io, and code of conduct
Changed name of “NA’s” column in summaryDefault output to“na”
Fixedtidy.TukeyHSD to includetermcolumn. Also addedseparate.levels argument, with option toseparatecomparison intolevel1 andlevel2
Fixedtidy.manova to use correct column name fortest (previously, alwayspillai)
Addedkde_tidiers to tidy kernel densityestimates
Addedorcutt_tidiers to tidy the results ofcochrane.orcutt orcutt package
Addedtidy.dist to tidy the distance matrix outputofdist from the stats package
Addedtidy andglance forlmodel2 objects from the lmodel2 package
Added tidiers forpoLCA objects from the poLCApackage
Added tidiers for sparse matrices from the Matrixpackage
Added tidiers forprcomp objects
Added tidiers forMclust objects from the Mclustpackage
Added tidiers foracf objects
Fixed to be compatible with dplyr 0.5, which is being submittedto CRAN
Added tidiers for geeglm, nlrq, roc, boot, bgterm, kappa,binWidth, binDesign, rcorr, stanfit, rjags, gamlss, and mle2objects.
Addedtidy methods for lists, including u, d, vlists fromsvd, and x, y, z lists used byimage andpersp
Addedquick argument totidy.lm,tidy.nls, andtidy.biglm, to create a smallerand faster version of the output.
Changedrowwise_df_tidiers to allow the originaldata to be saved as a list column, then provided as a column name toaugment. This required removingdata from theaugment S3 signature. Also addedtests-rowwise.R
Fixed various issues in ANOVA output
Fixed various issues in lme4 output
Fixed issues in tests caused by dev version of ggplot2
Added tidiers for “plm” (panel linear model) objects from the plmpackage.
Addedtidy.coeftest for coeftest objects from thelmtest package.
Set uptidy.lm to work with “mlm” (multiple linearmodel) objects (those with multiple response columns).
Addedtidy andglance for “biglm” and“bigglm” objects from the biglm package.
Fixed bug intidy.coxph when one-row matrices arereturned
Addedtidy.power.htest
Addedtidy andglance forsummaryDefault objects
Added tidiers for “lme” (linear mixed effects models) from thenlme package
Addedtidy andglance formultinom objects from the nnet package.
Fixed bug intidy.pairwise.htest, which now canhandle cases where the grouping variable is numeric.
Addedtidy.aovlist method. This addedstringr package to IMPORTS to trim whitespace from thebeginning and end of theterm andstratumcolumns. This also required adjustingtidy.aov so that itcould handle strata that are missing p-values.
Set upglance.lm to work withaovobjects along withlm objects.
Addedtidy andglance for matrixobjects, withtidy.matrix converting a matrix to a dataframe with rownames included, andglance.matrix returningthe same result asglance.data.frame.
Changed DESCRIPTION Authors@R to new format
Fixed small bug infelm where the.fitted and.resid columns were matricesrather than vectors.
Added tidiers forrlm (robust linear model) andgam (generalized additive model) objects, includingadjustments to “lm” tidiers in order to handle them. See?rlm_tidiers and?gam_tidiers formore.
Removed rownames fromtidy.cv.glmnet output
The behavior ofaugment, particularly with regard tomissing data and thena.exclude argument, has through theuse of theaugment_columns function been made consistentacross the following models:
lm
glm
nls
merMod (lme4)
survreg (survival)
coxph (survival)
Unit tests intests/testthat/test-augment.R were addedto ensure consistency across these models.
tidy,augment andglancemethods were added forrowwise_df objects, and are set upto apply across their rows. This allows for simple patterns suchas:regressions <- mtcars %>% group_by(cyl) %>% do(mod = lm(mpg~ wt, .)) regressions %>% tidy(mod) regressions %>%augment(mod)
See?rowwise_df_tidiers for more.
Addedtidy andglance methods forArima objects, andtidy forpairwise.htest objects.
Fixes for CRAN: change package description to title case, removedNOTES, mostly by addingglobals.R to declare globalvariables.
This is the original version published on CRAN.
Tidiers have been added for S3 objects from the followingpackages:
lme4
glmnet
survival
zoo
felm
MASS (ridgelm objects)
tidy andglance methods for data.frameshave also been added, andaugment.data.frame produces anerror (rather than returning the same data.frame).
stderror has been changed tostd.error(affects many functions) to be consistent with broom’s namingconventions for columns.
A functionbootstrap has been added based onthis example,to perform the common use case of bootstrapping models.
Added “augment” S3 generic and various implementations. “augment”does something different from tidy: it adds columns to the originaldataset, including predictions, residuals, or cluster assignments. Thiswas originally described as “fortify” in ggplot2.
Added “glance” S3 generic and various implementations. “glance”produces aone-row data frame summary, which is necessary fortidy outputs with values like R^2 or F-statistics.
Re-wrote intro broom vignette/README to introduce all threemethods.
Wrote a new kmeans vignette.
Added tidying methods for multcomp, sp, and map objects (fromfortify-multcomp, fortify-sp, and fortify-map from ggplot2).
Because this integrates substantial amounts of ggplot2 code (withpermission), added Hadley Wickham as an author in DESCRIPTION.