updates
Table of Contents
Package Updates
On this page, you can find a description of the (recent) updates to the metafor package. Older updates are archived here.
Version 5.0-1 (2026-04-26)
- argument
legendcan now be a list forfunnel(),labbe(),regplot(), andplot.permutest.rma.uni()for more control over the look of the legend - added
hetvarargument topredict.rma()to manually specify the amount of heterogeneity for computing prediction intervals - fixed how
intercept(when unspecified) is set inpredict.rma.ls()when usingnewscale - renamed
pi.typeargument topredtype(which is more consistent with thepredstyleargument), butpi.typewill continue to work for backwards compatibility - added
predstyle="polygon"as another option for drawing the prediction interval (as a polygon like for the pooled estimate) - can now use the
preddistargument inforest.rma()andaddpoly.default()to provide the predictive distribution directly - fixed
permutest.rma.ls()not running whenbttand/orattis specified ranktest()now also provides a p-value when the number of estimates is large- added various methods and a
predict.matreg()function formatregobjects; can now also specify a formula for theyargument ofmatreg() deltamethod()can now also do the second-order delta method- for measures
"ROM","ROMC","CVR", and"CVRC", the bias corrections based on the second-order Taylor expansions are now applied by default inescalc()(usecorrect=FALSEto switch this off) - all
addpoly()functions now respectalimandolimas set byforest() - some functions (e.g.,
vcalc()andrcalc()) can now return variance-covariance matrices as objects of class"vcovmat"; these are printed nicely withprint.vcovmat() rma()now calculates R^2 as long as a standard random-effects model is nested within the fitted mixed-effects modelconv.2x2()can now reconstruct tables for diagnostic studies based on diagnostic statistics (sensitivity, specificity, positive predictive value, negative predictive value)- added some more transformation functions
Version 4.8-0 (2025-01-28)
- some general changes to the various
forest()functions: argumentheaderis nowTRUEby default, the y-axis is now created withyaxs="i", and the y-axis limits have been tweaked slightly in accordance forest.rma()and the variousaddpoly()functions now provides multiple styles for drawing the prediction interval via thepredstyleargumentforest.rma()andaddpoly.rma()now write out the default label (instead of an abbreviation) for the model results; as before, the label can be changed via themlabargument- added an
ilab.labargument to the variousforest()functions for adding header labels to the plot for the additional study information columns - all plot functions that create multi-panel plots now behave in a consistent manner, setting
par(mfrow)automatically when no plotting device is open or when the number of panels in an open plotting device is too small for the number of panels to be plotted; all multi-panel plots also setpar(mfrow)=c(1L,1L)upon exit; argumentlayouthas been deprecated fromplot.permutest.rma.uni(),plot.vif.rma(), andplot.infl.rma.uni() - the
predict.rma()andpredict.rma.ls()functions now also accept a matrix as input that includes a column for the intercept term (in which case theinterceptargument is ignored and the first column of the matrix controls whether the intercept term is included in calculating the predicted value(s)) - added extractor function
se()for extracting standard errors from model objects - added function
pairmat()to construct a matrix of pairwise contrasts - added function
deltamethod()to apply the (multivariate) delta method to a set of estimates anova()andpredict()gain anadjustargument for adjusting p-values / interval bounds for multiple testing- fixed
predict()ignoring thelevelargument forrobust.rmaobjects obtained withclubSandwich=TRUE print.anova.rma()andprint.list.anova.rma()now also print significance stars for some tests (unlessgetOption("show.signif.stars")isFALSE)- added a
collapseargument to the variouscumul()functions (to specify whether studies with the same value of theordervariable should be added simultaneously) - the various
leave1out()functions gain aclusterargument rma.mv()now counts the number of levels of a random effect more appropriately; this may trigger more often the check that the number of levels is equal to 1, in which case the corresponding variance component is automatically fixed to 0; this check can be omitted withcontrol=list(check.k.gtr.1=FALSE)- made optimizers
RcgminandRvmminavailable again via theoptimxpackage - when unspecified, argument
shadeinfunnel()now automatically uses a color gradient for the regions when multiplelevelvalues are specified - added
lim,ci,pi,legend, andfliparguments tolabbe() fsn(..., type="General")now computes the final estimates after rounding the fail-safe N value (not before)permutest.rma.uni()gains abttargument andpermutest.rma.ls()gainsbttandattargumentsselmodel()gains asubsetargument (to specify a subset of studies to which the selection function should apply); for the beta selection model, one can now also specify twostepsvalues to fit a truncated beta selection modelnobs()now just returns the number of estimates, not the effective number of observations- some tweaks were made to
vcalc()to speed up the calculations (by James Pustejovsky) - added measures
"PRZ","CLES","AUC","CLESN","AUCN","CLESCN","AUCCN","R2F", and"ZR2F"toescalc() escalc()gains aflipargumentescalc()gains acorrectargument (to specify whether a bias correction should be applied)- added transformation function
transf.dtoovl()(for transforming standardized mean differences to overlapping coefficient values) andtransf.dtocliffd()(for transforming standardized mean differences to Cliff's delta values) qqnorm.rma.uni()now shades the pseudo confidence region; allqqnorm()functions gain agridargument- better handling of
outlist="minimal" - added more tests
Version 4.6-0 (2024-03-28)
- the
stepsargument in the variousprofile()functions can now also be a numeric vector to specify for which parameter values the likelihood should be evaluated - a few minor fixes to the dynamic theming of plots based on the foreground and background colors of the plotting device
- slightly improved flexibility for setting package options
- new measures added to
escalc():"SMN"for the single-group standardized mean / single-group standardized mean difference,"SMCRP"for the standardized mean change using raw score standardization with pooled standard deviations, and"SMCRPH"for the standardized mean change using raw score standardization with pooled standard deviations and heteroscedastic population variances at the two measurement occasions - calculation of the sampling variances for measures
"SMDH","SMD1H", and"SMCRH"was slightly adjusted for consistency - in
plot.gosh.rma(), can also sethet="tau"(to plot the square root of tau^2 as the measure of heterogeneity) - in the various
forest()functions, argumentylimcan now only be a single value to specify the lower bound (while the upper bound is still set automatically) - in
forest()andregplot(), observation limits set viaolimare now properly applied to all elements - various internal improvements to
selmodel() selmodel()no longer stops with an error when one or more intervals defined by thestepsargument do not contain any observed p-values (instead a warning is issued and model fitting proceeds, but may fail)- added
decreasingargument toselmodel()for enforcing that the delta estimates must be a monotonically decreasing function of the p-values in the step function model - added the undocumented argument
pvaltoselmodel()for passing p-values directly to the function (doing this is highly experimental) - some internal refactoring of the code
- improved the documentation a bit
Version 4.4-0 (2023-09-27)
- added
getmfopt()andsetmfopt()functions for getting and setting package options and made some of the options more flexible - removed argument
weightedfromfsn()(whether weighted or unweighted averages are used in Orwin's method is now simply determined by whether sampling variances are specified or not); addedtype="General"tofsn()as a generalization of the Orwin and Rosenberg methods (that allows for a fail-safe N calculation based on a random-effects model); can now pass anrmaobject to thefsn()function - further improved the theming of all plots based on the foreground and background colors; within RStudio, plot colors can also be automatically chosen based on the theme (with
setmfopt(theme="auto")) - added additional/optional argument
tabfigto the variousforest()functions, for easily setting theannosymargument to an appropriate vector for exactly aligning numbers (when using a matching font) - added (for now undocumented)
vcconargument torma.mv()for setting equality constraints on variance/correlation components replaceargument inconv.2x2(),conv.delta(),conv.fivenum(), andconv.wald()can now also be a logical- added
summary.matreg()andprint.summary.matreg()methods for including additional statistics in the output ($R^2$ and the omnibus test) and addedcoef.matreg()andvcov.matreg()extractor functions - formatting functions
fmtp(),fmtx(), andfmtt()gain aquoteargument, which is set toFALSEby default - for measures
"PCOR","ZPCOR","SPCOR", and"ZSPCOR", argumentmiinescalc()now refers to the total number of predictors in the regression models (i.e., also counting the focal predictor of interest) - added measures
"R2"and "ZR2"toescalc() addpoly.default()andaddpoly.rma.predict()gain aconstareaargument (for the option to draw the polygons with a constant area)plot.rma.uni.selmodel()gains ashadeargument (for shading the confidence interval region)plot.permutest.rma.uni()gains alegendargumentvcalc()gains asparseargumentaggregate.escalcgainsvar.namesargument- made the
legendargument more flexible infunnel() - made the
appendargument more flexible into.long() - added a few more transformation functions
- small bug fixes
- added automated visual comparison tests of plots
- improved the documentation a bit
Version 4.2-0 (2023-05-08)
- improved the various plotting functions so they respect
par("fg"); as a result, one can now create plots with a dark background and light plotting colors - also allow two or three values for
xlabin the variousforest()functions (for adding labels at the ends of the x-axis limits) - better default choices for
xlimin the variousforest()functions; also, argumentilab.xposis now optional when using theilabargument - added
shadeandcolshadearguments to the variousforest()functions - the various
forest()functions no longer enforce thatxlimmust be at least as wide asalim - added
linkargument torma.glmm() rma.glmm()withmeasure="OR", model="CM.EL", method="ML"now treats tau^2 values below 1e-04 effectively as zero before computing the standard errors of the fixed effects; this helps to avoid numerical problems in approximating the Hessian; similarly,selmodel()now treats tau^2 values below 1e-04 or min(vi/10) effectively as zero before computing the standard errors- for measure
SMCC, can now specify d-values, t-test statistics, and p-values via argumentsdi,ti, andpi - functions that issue a warning when omitting studies due to NAs now indicate how many were omitted
- properly documented the
levelargument - added a few more transformation functions
- small bug fixes
- improved the documentation a bit
Version 4.0-0 (2023-03-19)
- added
conv.2x2()function for reconstructing the cell frequencies in 2x2 tables based on other summary statistics - added
conv.wald()function for converting Wald-type confidence intervals and test statistics to sampling variances - added
conv.fivenum()function for estimating means and standard deviations from five-number summary values - added
conv.delta()function for transforming observed effect sizes or outcomes and their sampling variances using the delta method - added
emmprep()function to create a reference grid for use with theemmeans()function from the package of the same name - exposed formatter functions
fmtp(),fmtx(), andfmtt() - package
numDerivmoved fromSuggeststoDepends model.matrix.rma()gainsasdfargument- corrected bug in
vcalc()(values forobsandtypewere taken directly as indices instead of using them as identifiers) - improved efficiency of
vif()whensim=TRUEby reshuffling only the data needed in the model matrix; due to some edge cases, the simulation approach cannot be used when some redundant predictors were dropped from the original model; and when redundancies occur after reshuffling the data, the simulated (G)VIF value(s) are now set toInfinstead ofNA selmodel()gainstype='trunc' andtype='truncest' models (the latter should be considered experimental)- added
exact="i"option inpermutest()(to just return the number of iterations required for an exact permutation test) escalc()now provides more informative error messages when not specifying all required arguments to compute a particular measure- added measures
"ZPHI","ZTET","ZPB","ZBIS", and"ZSPCOR"toescalc()(but note that Fisher's r-to-z transformation is not a variance-stabilizing transformation for these measures) - the variance of measure
ZPCORis now calculated with1/(ni-mi-3)(instead of1/(ni-mi-1)), which provides a better approximation in small samples (and analogous to how the variance ofZCORis calculated with1/(ni-3)) - as with
measure="SMD", one can now also use argumentsdiandtito specify d-values and t-test statistics for measuresRPB,RBIS,D2ORN, andD2ORLinescalc() - for measures
COR,UCOR, andZCOR, can now use argumenttito specify t-test statistics inescalc() - can also specify (two-sided) p-values (of the respective t-tests) for these measures (and for measures
PCOR,ZPCOR,SPCOR, andZSPCOR) via argumentpi(the sign of the p-value is taken to be the sign of the measure) - can also specify (semi-)partial correlations directly via argument
rifor measuresPCOR,ZPCOR,SPCOR, andZSPCOR - when passing a correlation marix to
rcalc(), it now orders the elements (columnwise) based on the lower triangular part of the matrix, not the upper one (which is more consistent with whatmatreg()expects as input when using theVargument) - optimizers
RcgminandRvmminare now available inrma.uni(),rma.mv(),rma.glmm(), andselmodel() - improved the documentation a bit
Version 3.8-1 (2022-08-26)
funnel.default(),funnel.rma(), andregplot.rma()gainslabargumentvif()was completely refactored and gainsreestimate,sim, andparallelarguments; addedas.data.frame.vif.rma()andplot.vif.rma()methodsplot.permutest.rma.uni()function sets the y-axis limits automatically and in a smarter way when also drawing the reference/null distribution and the density estimate- added possibility to specify a list for
bttinanova.rma(); addedprint.list.anova.rma()to print the resulting object - added
as.data.frame.anova.rma()andas.data.frame.list.anova.rma()methods - documented the possibility to use an identity link (with
link="identity") inrma.uni()when fitting location-scale models (although this will often lead to estimation problems); addedsolnp()as an additional optimizer for this case - optimizers
nloptrandconstrOptim.nl(the latter from thealabamapackage) are now available inrma.uni()for location-scale models when using an identity link - added measure
SMD1Htoescalc() - for
measure="SMD",escalc()now also allows the user to specify d-values and t-test statistics via argumentsdiandti, respectively aggregate.escalc()gainsaddkargument- added (experimental!) support for measures
"RR","RD","PLN", and"PR"torma.glmm()(but using these measures will often lead to estimation problems) replmiss()gainsdataargumentcumul()functions also store data, so that argumentsilab,col,pch, andpsizein theforest.cumul.rma()function can look for variables therein- fixed issue with rendering Rmarkdown documents with
metaforoutput due to the use of a zero-width space
Older Versions
Older updates are archived here.
updates.txt ยท Last modified: by Wolfgang Viechtbauer