Revise web links
Major changes
By default, prediction intervals are based on k - 1
instead of k - 2 degrees of freedom (Veroniki et al., 2019, RSM)
where k corresponds to the number of studies in the
meta-analysis; see help(“meta-package”) for more details on
methods to calculate prediction intervals
Meta-analysis of n-of-1 trials implemented (Senn, 2024,
Trials)
Logistic regression with penalised likelihood implemented for
meta-analysis of rare events (Evrenoglou et al., 2022, Stat
Med)
I2 statistic can be calculated from between-study
variance instead of Q statistic (new argument
‘method.I2’)
R functions pairwise() and subset.pairwise() moved from R package
netmeta to meta
R function pairwise() can be used with dose-response
data
Information on colour of labels on left and right side of null
effect in forest plots can be stored in meta-analysis object
In forest plots,
- the heterogeneity statistic Q, its p-value, and the
I2 statistic are printed with the same number of digits as in
printouts
- the text for subgroups is printed in “black” instead of “darkgray”
(argument ‘col.subgroup’)
Level of confidence intervals for heterogeneity statistics can be
specified by the user (argument ‘level.hetstat’); in previous version of
R package meta confidence intervals for tau2
and tau were always 95%-CIs while confidence intervals for
I2 and H were based on the value for argument
‘level.ma’
First argument to R functions metabin(), metacont(), metagen(),
and metainc() can be a pairwise() object
In funnel.meta(), arguments ‘pch’, ‘cex’, and ‘cex.studlab’ can
be of same length as the number of studies
New auxiliary function setvals() to easily define the input for
arguments ‘pch’, ‘cex’, ‘col’, ‘bg’, ‘text’, and ‘cex.studlab’ in
funnel.meta(); e.g., to use different colours for subgroups
R package brglm2
added to suggested packages to fit penalized logistic regression for
meta-analysis of rare events (Evrenoglou et al., 2022, Stat
Med)
Print a warning message if deprecated arguments are used, e.g.,
‘comb.fixed’ or ‘fixed’ instead of ‘common’
The command settings.meta(“meta7”) can be used to get
the meta-analysis settings from meta, version
7.0-0
User-visible changes
metabin(), metacont(), metacor(), metacr(), metagen(), metainc(),
metamean(), metaprop(), metarate(), update.meta():
- new argument ‘method.I2’ to choose method to calculate I2
statistic
- new argument ‘level.hetstat’ to specify level of confidence
intervals for heterogeneity statistics
- new arguments ‘col.label.left’ and ‘col.label.right’ to define
colour of labels used in forest plots on left and right side of null
effect
metagen():
- new argument ‘cycles’ for meta-analysis of n-of-1 trials
metabin():
- fit penalised logistic regression if argument ‘sm = “LRP”’
Do not print the start-up message concerning older version of R
package meta for readers of ‘Meta-Analysis with R (Use
R!)’
funnel.meta():
- new argument ‘type’ to create a contour-enhanced funnel plot with
default settings
- argument ‘…’ passed on to plot.default(), e.g., to specify font
family
print.summary.meta():
- new arguments ‘digits.Q’, ‘digits.df’, ‘digits.pval.Q’, ‘digits.H’,
‘print.tau2.ci’, ‘print.tau.ci’, ‘print.Q’, ‘print.H’, ‘print.Rb’,
‘text.Rb’
pairwise():
- new arguments ‘agent’ and ‘dose’ to provide information for
dose-response data
- new argument ‘varnames’ to change variable names for effect estimate
and its standard error
bubble.metareg():
- argument ‘backtransf = TRUE’ is recognized for additional summary
measures, i.e., “PLOGIT”, “PLN”, “PAS”, “IRLN”, “IRS”, “ZCOR”
settings.meta():
- default setting can be defined for ‘print.I2.ci’
- additional settings, e.g., for R package netmeta,
can be changed
Bug fixes
- forest.meta():
- print “logVR” instead of “logVE” or “VE” for not back-transformed
vaccine efficacy / effectiveness (sm = “VE”)
- additional check whether input for argument ‘sortvar’ is a function
(for example, using a variable ‘order’ resulted in an error due to the R
function order())
- bubble.metareg():
- use of vector instead of single value for argument ‘pch’ resulted in
wrong order of plotting symbols
- metagen():
- set list elements ‘approx.TE’ or ‘approx.seTE’ to NULL if no
approximation has been used
- print.summary.meta():
- recognize the arguments ‘scientific.pval’, ‘zero.pval’,
‘JAMA.pval’
- runGLMM():
- use results of common effect model as fallback for error “Cannot fit
ML model” and print corresponding warning
- pairwise():
- inconsistent values for Cohen’s d if data was already provided in
contrast based format
- argument ‘append = FALSE’ didn’t work
Internal changes
- metamean(): use mean value if median is not provided to approximate
missing standard deviation
Major changes
Vignettes added
R package metadat added to Depends (to access
meta-analysis datasets)
R package robvis added to Suggests (for risk of
bias assessment)
New functions rob(), barplot.rob() and traffic_light() for risk
of bias assessment (RoB)
New function read.cdir() to import Cochrane data package from
Cochrane review of interventions
New function blup.meta() to calculate best linear unbiased
predictors (BLUPs)
New functions estimates(), estimates.meta(), and
estimates.blup.meta() to extract meta-analysis results
Lower and upper confidence interval limits of individual study
results stored as transformed limits for meta-analysis with single
proportions or rates (in previous versions of meta, CI
limits were back transformed for individual studies and not back
transformed for meta-analysis results)
Changes for forest plots:
- forest plot can be directly saved to a file using common graphics
device drivers (height of file is determined automatically)
- BMJ layout implemented (layout = “BMJ”)
- details on meta-analysis methods can be shown in plot
- risk of bias assessment automatically added for meta-analyses with
RoB assessment
- point estimates can be plotted as circles or diamonds instead of
squares
- default settings for columns on left or right side of forest plot
can be defined in settings.meta()
- common effect and random effects confidence intervals and prediction
intervals are truncated if lower / upper limit is outside the limits of
the x-axis
New general setting “BMJ”, i.e., R command
settings.meta(“BMJ”), to print results according to BMJ style
and formating checklist, see, for example, BMJ
Medicine
R function metabind() can return both common effect and random
effects results as well as prediction intervals
Internal functions for (back) transformations made visible /
accessible to the user; see help(“meta-transf”)
Within-cluster correlation can be specified for three-level model
(by default, rho = 0)
Use approximate formulae for Hedges’ g and Cohen’s d for RevMan 5
settings; see help page of settings.meta()
Argument ‘pscale’ or ‘irscale’ could be used in principle with
any effect measure which is useful for user-specified summary measure in
metagen()
New R function plot.meta() which calls forest.meta()
internally
User-visible changes
- metabin(), metacont(), metacor(), metainc(), metamean(), metaprop(),
metarate(), update.meta():
- new argument ‘rho’ to specify within-cluster correlation in
three-level model
- print.meta():
- show group sample sizes in printouts
- print confidence intervals based on t- and normal distribution for
metacont() or metamean() objects with a single study and argument
‘method.ci = “t”’
- new argument ‘print.Q’ to suppress printing of heterogeneity
statistic Q and test of heterogeneity
- default for argument ‘details.methods’ can be defined using
settings.meta()
- do not print degrees of freedom for Hartung-Knapp or Kenward-Rogers
intervals if argument
- gs():
- first argument can be a character vector instead of a character
string to get the default setting of several arguments (which would be
returned as a list)
- new argument ‘unname’ to return named arguments (if unname =
FALSE)
- metamerge():
- can be used with object created with copas() or limitmeta() from R
package metasens as only input (which adds the
respective results to the standard meta-analysis object)
- arguments ‘label1’ and ‘label2’ can be used to provide defaults to
amend labels for common effect or random effects model, prediction
intervals and subgroups
- new arguments ‘label1.common’, ‘label2.common’, ‘label1.random’,
‘label2.random’, ‘label1.predict’, ‘label2.predict’, ‘label1.subgroup’,
and ‘label2.subgroup’
- metaadd():
- argument ‘data’ can be a meta-analysis object created with R package
meta
- new arguments ‘method.common’, ‘method.random’, ‘method.tau’,
‘method.random.ci’, and ‘method.predict’
- metabind():
- new arguments ‘common’, ‘random’ and ‘prediction’ replacing argument
‘pooled’
- forest.meta():
- new arguments ‘file’, ‘width’, ‘rows.gr’, ‘func.gr’, ‘args.gr’, and
‘dev.off’ to directly store a forest plot in a file
- new arguments ‘rob’, ‘rob.col’, ‘rob.symbols’, ‘rob.attach’,
‘rob.xpos’, ‘rob.legend’, ‘fs.rob’, ‘fs.rob.symbols’, ‘ff.rob’,
‘ff.rob.symbols’, ‘colgap.rob’ and ‘just.rob’ for risk of bias
assessment
- new arguments ‘details’, ‘fs.details’ and ‘ff.details’ to add
details on meta-analytical methods
- point estimates can be plotted as circles instead of squares or
diamonds (arguments ‘type.study’, ‘type.common’, ‘type.random’,
‘type.subgroup’, ‘type.subgroup.common’, ‘type.subgroup.random’)
- new arguments ‘col.circle’ and ‘col.circle.lines’ to define the
colour of circles
- new argument ‘digits.n’ and ‘digits.event’ to specify the number of
significant digits for sample sizes and number of events
- justification of results for effect + confidence interval can be
specified by argument ‘just’ if argument ‘layout = “RevMan5”’
- settings.meta():
- new argument ‘overall.hetstat’ to specify whether to show
information on between-study heterogeneity
- new argument ‘width’ to specify width of graphics device
- new arguments ‘print.tau2’, ‘print.tau2.ci’, ‘print.tau’ and
‘print.tau.ci’ to specify whether to show (confidence intervals for)
tau^2 or tau in printouts
- new arguments ‘leftcols’, ‘rightcols’, ‘leftlabs’, ‘rightlabs’,
‘label.e.attach’ and ‘label.c.attach’ to changes defaults for
corresponding arguments in forest.meta()
- bubble.meta():
- new arguments ‘pscale’ and ‘irscale’ added
- metaprop(), metarate():
- list elements ‘lower’ and ‘upper’ contain the transformed lower and
upper confidence interval limits for individual studies
- R functions for transformation:
- transf(), cor2z(), p2asin(), p2logit(), VE2logVR()
- R functions for back transformation:
- backtransf(), asin2ir(), asin2p(), logit2p(), logVR2VE(),
z2cor()
- labels.meta():
- R function is not exported
Bug fixes
- funnel.meta():
- automatically calculated limits on x-axis were to narrow for some
settings
- metamean():
- argument ‘null.effect’ was ignored to calculate the test statistic
and p-value for individual studies (list elements ‘statistic’ and
‘pval’)
- metabin():
- use continuity correction if sm = “VE”
- metareg():
- error if input to argument ‘formula’ was the name of an R
function
- print.summary.meta():
- print correct backtransformed subgroup results for metabind
objects with metaprop objects with Freeman-Tukey transformation as
input
Internal changes
New internal function gh() to determine height of graphics
file
New internal function smlab() to determine the label for the
summary measure
Use of vcalc() from R package metafor to
calculate the variance-covariance matrix in three-level model with
within-cluster correlation not equal to 0
funnel.meta(): list element of meta-analysis object can be
directly specified in arguments ‘text’, ‘col’ and ‘bg’, e.g., argument
‘text = studlab’ to use study labels instead of plotting
symbols
Input to chkchar() can be a numeric vector
settings.meta(): set defaults for arguments ‘forest.tau2,’
‘forest.tau’, ‘forest.I2’, ‘forest.Q’, ‘forest.pval.Q’, and ‘forest.Rb’
for BMJ, JAMA and RevMan5 layout
Major changes
In R function metamerge(), user can decide whether to keep or
ignore information from second meta-analysis on study weights and
heterogeneity statistics
New function metaadd() to add pooled results from external
analysis to meta-analysis object
Function update.meta() considers arguments ‘method.mean’ and
‘method.sd’
Variables with group specific information can be merged into a
single variable in longarm()
Additional thresholds can be specified to plot vertical lines in
forest plots, e.g., to mark large, moderate and small effects
Baujat plot can be used to evaluate influence of studies on
random effects estimate
Seed can be specified in meta-analysis functions to calculate
reproducible bootstrap prediction intervals
User-visible changes
- metamerge():
- new arguments ‘common1’, ‘random1’, ‘prediction1’, ‘common2’,
‘random2’, ‘prediction2’ to specify whether to keep common effect
results, random effects results or prediction interval from first or
second meta-analysis
- new arguments ‘keep’, ‘keep.Q’, ‘keep.I2’ and ‘keep.w’ to determine
whether additional information from second meta-analysis should be
kept
- new arguments ‘common’, ‘random’, ‘prediction’, ‘overall’ and
‘overall.hetstat’ to specify which results to print
- new arguments ‘hetlabel1’, ‘hetlabel2’, ‘text.common1’,
‘text.common2’, ‘text.random1’, ‘text.random2’, ‘text.predict1’ and
‘text.predict2’ to label results from first or second meta-analysis
- longarm():
- new arguments ‘id1’ and ‘id2’ to specify last character(s) of
variable names with group specific information
Bug fixes
- metabias():
- do not conduct test for funnel plot asymmetry for three-level model
(the test did not consider the cluster structure)
- forest.meta():
- header line was concealed by equivalence region
- error if argument ‘resid.hetstat = TRUE’ was used for subgroup
meta-analysis without common between-study variance estimate in
subgroups (argument ‘tau.common = FALSE’ in meta-analysis
functions)
- read.rm5():
- fix bug for error message “In gsub(”“,”EUR”, txt) : unable to
translate ‘<80>’ to a wide string” due to change in default
settings in R function gsub()
User-visible changes
- metabin(), metacont(), metacor(), metacr(), metainc(), metamean(),
metaprop(), metarate(), update.meta():
- new arguments ‘seed.predict’ and ‘seed.predict.subgroup’
- print an error message if bootstrap prediction interval is requested
for three-level model
- trimfill.default():
- new argument ‘seed.predict’
- baujat.meta():
- forest.meta():
- arguments ‘lower.equi’ and ‘upper.equi’ can be numeric vectors
- new arguments ‘fill.lower.equi’ and ‘fill.upper.equi’ to specify
fill colour(s) for lower or upper limits
- print.metabias():
- do not print the intercept and its standard error (nuisance
parameter)
Internal changes
Bug fixes
- forest.meta():
- correct order of cluster variable for three-level meta-analysis with
subgroups or use of argument ‘sortvar’
- metabin(), metacont(), metacor(), metainc(), metamean(), metaprop(),
metarate():
- recognise argument ‘subset’ for three-level meta-analysis
- Ad hoc variance correction for Hartung-Knapp method was not
used for argument ‘adhoc.hakn = “IQWiG6”’ (bug was introduced in
meta, version 6.0-0)
User-visible changes
- metacr():
- new argument ‘Q.Cochrane’
- metareg():
- using the regression formula as first unnamed argument will result
in an error not a warning
Internal changes
metagen(): check argument ‘sm’ for known summary measures in
lower case
setchar(): new arguments ‘return.NULL’ and ‘nchar.equal’
New branch ‘release’ on GitHub starting with
meta, version 6.2-1
Major changes
- New function trimfill.rm5() to conduct trim-and-fill method for all
or selected meta-analyses of a Cochrane review
User-visible changes
- nnt.meta(), print.nnt.meta():
Internal changes
Use generic functions metacum() for cumulative meta-analysis,
metainf() for leave-one-out meta-analysis and metareg() for
meta-regression
New internal function chksuitable() to check for suitable
classes
Major changes
Meta-analysis of Vaccine Efficacy or Vaccine
Effectiveness implemented
For the generic inverse variance method,
- untransformed values can be provided for treatment estimates and
confidence limits, see argument ‘transf’
- original confidence limits for individual studies kept if arguments
‘lower’ and ‘upper’ are not missing
- standard error set to missing if lower and upper confidence limits
are identical (resulted in an error)
Methods by McGrath et., (2020)
and Cai et.,
(2021) implemented to approximate means and standard deviations from
median and related statistics
R package estmeansd
added to suggested packages to provided methods by McGrath et., (2020)
and Cai et.,
(2021)
Print header line in forest plots with JAMA or RevMan5
layout
Bug fixes
- forest.meta():
- no error for subgroup meta-analysis conducted with metarate() using
argument ‘n’ to specify the sample size
- same square sizes for a meta-analysis with or without subgroups
- no error for Revman5 and JAMA layout in meta-analyses with more than
one random effects method
- metarate():
- calculate number of observations in subgroups if argument ‘n’ is
provided
- metabind(), forest.metabind():
- use correct study / method labels if no subgroup results are
present
- settings.meta():
- argument ‘addrows.below.overall’ not ‘addrow.below.overall’
- metagen():
- calculate correct prediction interval limits for three-level
models
- number of studies in meta-analysis equal to number of non-missing
estimates and standard errors (only number of non-missing standard
errors was considered)
User-visible changes
All meta-analysis functions:
- print prediction interval(s) if argument ‘method.predict’ is not
missing
metabin, metagen(), metainc():
- argument ‘sm = “VE”’ can be used for meta-analysis of vaccine
efficacy or vaccine effectiveness
metagen(), settings.meta():
forest.meta():
- new argument ‘header.line’ to add header line
- new argument ‘digits.TE’ to specify number of digits for transformed
treatment estimates (list element ‘TE’)
- use more informative column labels for ‘TE’ and ‘seTE’
metabin(), metainc(), metaprop() and metarate():
- for GLMMs, stop with error if argument ‘adhoc.hakn.ci’ or
‘adhoc.hakn.pi’ is unequal to “”
nnt.meta(), nnt.default():
- new argument ‘small.values’ to specify whether small treatment
effects indicate a beneficial or harmful effect
settings.meta():
- new argument ‘digits.TE.forest’ to set default for argument
‘digits.TE’ in forest.meta()
Print blank space before negative upper confidence interval limit
if separator is equal to “-”
New help page meta-sm summarising available summary
measures
Help page of nnt() updated
Change maintainer’s email address
Internal changes
New internal functions transf(), cor2z(), p2asin(), logVR2VE()
and VE2logVR()
chknumeric():
- new argument ‘integer’ to check for integer values
List element ‘df.Q.b.random’ with degrees of freedom for test of
subgroup differences under random effects model is a list instead of a
vector if more than one random effects method was used (argument
‘method.random.ci’)
Several changes for meta-analysis using generalised linear mixed
or three-level models
Major changes
Meta-analysis object can contain results of several common effect
or random effects methods, e.g., random effects meta-analysis with or
without Hartung-Knapp method
Kenward-Roger method implemented to estimate confidence or
prediction interval (Partlett
& Riley, 2017)
Bootstrap approach implemented to calculate prediction interval
(Nagashima et al.,
2019)
Rewrite of function metamerge() to merge pooled results of two
meta-analyses into a single meta-analysis object
Defaults for appearance of forest plots can be defined for the R
session
R package pimeta
added to suggested packages in order to calculate bootstrap approach for
prediction interval
New argument ‘method.random.ci’ replaces argument ‘hakn’ to
select method to calculate confidence interval for random effects
estimate
Major update of help pages:
- help page for meta-package revised; content with details in
meta-analysis functions moved to this help page
- new help page meta-object describing content of
meta-analysis functions; corresponding content moved from individual
help pages
Bug fixes
- forest.meta():
- do not print label for subgroups with no information to print, e.g.,
if argument ‘study.results = FALSE’, for subgroups with only one or no
study contributing to pooled estimate in the subgroup
- do not show empty row before label on x-axis (argument ‘xlab’) if
argument ‘label.left’ or ‘label.right’ is provided for meta-analysis
without reference value (argument ‘ref’), e.g., meta-analysis of single
means or proportions
- metareg():
- use Paule-Mandel estimator if used in meta-analysis (instead of REML
estimator)
User-visible changes
- metabin(), metacont(), metacor(), metagen(), metainc(), metamean(),
metaprop() and metarate():
- argument ‘hakn’ replaced by ‘method.random.ci’
- argument ‘adhoc.hakn’ replaced by ‘adhoc.hakn.ci’
- new arguments ‘method.predict’ and ‘adhoc.hakn.pi’
- settings.meta():
- several new arguments added to define defaults for forest plots; see
printout of command settings.meta(print = TRUE)
- forest.meta():
- argument ‘col.by’ has been renamed to ‘col.subgroup’,
- argument ‘bysort’ has been renamed to ‘sort.subgroup’
- trimfill.meta():
- arguments ‘level’, ‘level.ma’, ‘method.random.ci’, ‘adhoc.hakn’,
‘method.tau’, ‘method.tau.ci’, ‘level.predict’, and ‘method.predict’
removed
Major changes
Use term ‘common effect model’ instead of ‘fixed effect model’ in
the documentation and argument ‘common’ instead of ‘fixed’ to (not) show
results for common effect model
Three-level model implemented in all meta-analysis
functions
For continuity corrections, new argument ‘method.incr’ replaces
arguments ‘allincr’ and ‘addincr’ for meta-analysis with binary outcome
or incidence rates
Exact Poisson confidence limits can be calculated for individual
studies in meta-analysis of single rates
Show information on statistical significance and between-study
heterogeneity in forest plots of cumulative or leave-one-out
meta-analysis
Calculate Cochran’s Q directly in meta for
classic inverse variance meta-analysis (instead of taking it from
metafor package)
By default, do not print warnings for deprecated arguments; this
can be changed with command ‘settings.meta(warn.deprecated =
TRUE)’
Bug fixes
Use correct standard error for Cox and Snell’s method in smd2or()
and or2smd()
Three-level model did not work if variable from dataset was
provided as input to argument ‘id’ in metacont()
Argument ‘tau.common = TRUE’ was ignored in subgroup analysis of
three-level model in metacont()
Argument ‘level’ was ignored in the calculation of confidence
limits for individual studies in metacont() and metamean() if argument
‘method.ci = “t”’
Show correct studies in forest plot with subgroups and missing
treatment effects if argument ‘allstudies = FALSE’
Show points in bubble plot of meta-regression with GLMM
User-visible changes
For three-level models,
- argument ‘id’ has been renamed to ‘cluster’
- cluster variable is shown in forest plots
New arguments ‘common’ and ‘cluster’ in functions metabin(),
metacont(), metacor(), metagen(), metainc(), metamean(), metaprop() and
metarate()
New function subset.longarm() to select subset of a longarm
object
New argument ‘method.ci’ in function metarate()
New argument ‘method.ci.rate’ in function
settings.meta()
New argument ‘method.incr’ in functions metabin(), metainc(),
metaprop() and metarate()
print.summary.meta():
- for a single study and metabin() with method = “MH”, sm = “RR” and
RR.Cochrane = FALSE, print results using a continuity correction for
sample sizes of 1x incr (individual study) and 2x incr (meta-analysis of
single study)
Internal changes
forest.meta():
- use meta:::formatN() instead of format() for formatting
- print study label “1” instead of “” for a single study
metarate():
- list elements ‘lower’ and ‘upper’ contain untransformed confidence
limits for individual studies
New internal function update_needed() to check whether update of
meta object is needed
metabin(), metacont(), metacor(), metagen(), metainc(),
metamean(), metaprop() and metarate():
- new list element ‘k.TE’ with number of estimable effects
Major changes
Forest plot for meta-analysis with subgroups:
- more flexible printing of subgroup results
- by default, do not show subgroup results (pooled estimates and
information on heterogeneity) for subgroups consisting of a single
study
Prediction intervals in subgroups can be shown independently of
prediction interval for overall meta-analysis in printouts and forest
plots
Bubble plot shows relative treatment effects on original scale
instead of log scale and reference line is shown
Trim and fill, limit meta-analysis and Copas selection model
objects can be used in function metabind()
New function longarm() to transform data from pairwise
comparisons to long arm-based format
New auxiliary function labels.meta() to create study labels for
forest plots in JAMA or Lancet layout
Printing of spaces in confidence intervals can be
suppressed
Help page of forest.meta() updated
Bug fixes
Use correct standard error to calculate prediction interval if
Hartung-Knapp method was used
In forest plots, show correct degrees of freedom for test of
effect in subgroups for Hartung-Knapp method
In update.meta(), consider input for arguments ‘pscale’,
‘irscale’ and ‘irunit’ for meta-analysis objects created with
metagen()
User-visible changes
- forest.meta():
- new argument ‘subgroup.hetstat’
- arguments ‘subgroup’, ‘subgroup.hetstat’, ‘prediction.subgroup’,
‘test.effect.subgroup’, ‘test.effect.subgroup.fixed’ and
‘test.effect.subgroup.random’ can be a logical vector of same length as
number of subgroups
- arguments ‘lab.e’, ‘lab.c’, ‘lab.e.attach.to.col’ and
‘lab.c.attach.to.col’ renamed to ‘label.e’, ‘label.c’, ‘label.e.attach’
and ‘label.c.attach’
- forest.meta(), metabin(), metacont(), metacor(), metacr(),
metagen(), metainc(), metamean(), metaprop(), metarate(), print.meta(),
update.meta():
- new argument ‘prediction.subgroup’
- metamerge():
- first argument can be of class ‘limitmeta’ or ‘copas’
- bubble.metareg():
- new argument ‘backtransf’ to (not) back transform relative treatment
effects on y-axis
- new arguments ‘ref’, ‘col.ref’, ‘lty.ref’ and ‘lwd.ref’ for
reference line
- settings.meta():
- arguments ‘print’, ‘reset’ and ‘setting’ can be used like any other
setting; for example, it is possible to fully reset the settings and
switch to the RevMan 5 settings
- R commands ‘settings.meta(“print”)’ and ‘settings.meta()’ produce
the same printout
- new global setting ‘prediction.subgroup’ for prediction intervals in
subgroups
- new global settings ‘CIlower.blank’ and ‘CIupper.blank’
- cilayout():
- new arguments ‘lower.blank’ and ‘upper.blank’ to suppress printing
of spaces in confidence intervals
- additional checks for length of arguments
Internal changes
Major changes
- For meta-analysis of single proportions,
- export p-value of exact binomial test for individual studies if
Clopper-Pearson method (method.ci = “CP”) is used to calculate
confidence intervals for individual studies
- do not export p-value for individual studies if argument ‘method.ci’
is not equal to “CP” or “NAsm” (normal approximation based on summary
measure)
Bug fixes
Meta-analysis of continuous outcomes using Hedges’ g or Cohen’s d
as summary measure resulted in inestimable SMDs in
individual studies if the total sample size was larger than 343 and
argument ‘exact.smd’ was TRUE (default)
Forest plot creation for meta-analysis of single means with
subgroups resulted in an error
Internal changes
New internal function ciClopperPearson() to calculate confidence
limits and p-value for exact binomial method
Exported list elements changed for internal functions
ciAgrestiCoull(), ciSimpleAsymptotic() and ciWilsonScore()
Major changes
- By default, use exact formulae in estimation of the standardised
mean difference (Hedges’ g, Cohen’s d) and its standard error (White & Thomas,
2005)
Bug fixes
- Use of metagen() with argument ‘id’ (three-level model) does not
result in an error if all estimates come from a single study
Internal changes
- Fix errors due to extended checks of arguments equal to NULL in R
package metafor, version 3.1 or above
Major changes
- For backward compatibility, use Q statistic based on Mantel-Haenszel
estimate (argument ‘Q.Cochrane’) by default to calculate
DerSimonian-Laird estimator of the between-study variance
Bug fixes
- For small sample sizes, use correct entry from Table 2 in Wan et. (2014) to
approximate standard deviation from median and related statistics
Major changes
Behaviour of print.meta() and print.summary.meta() switched (to
be in line with other print and summary functions in R)
New default settings:
- Restricted maximum likelihood (REML) instead of DerSimonian-Laird
estimator used as default to estimate between-study heterogeneity
(argument ‘method.tau’)
- Do not use Q statistic based on Mantel-Haenszel estimate to
calculate DerSimonian-Laird estimator of the between-study variance
(argument ‘Q.Cochrane’)
- Print ‘Common effect model’ instead of ‘Fixed effect model’
Default settings of meta, version 4 or lower,
can be used with command settings.meta(“meta4”) - this does not
change the new behaviour of print.meta() and
print.summary.meta()
Renamed arguments:
- ‘fixed’ instead of ‘comb.fixed’
- ‘random’ instead of ‘comb.random’
- ‘level.ma’ instead of ‘level.comb’
- ‘subgroup’ instead of ‘byvar’
- ‘subgroup.name’ instead of ‘bylab’
- ‘print.subgroup.name’ instead of ‘print.byvar’
- ‘sep.subgroup’ instead of ‘byseparator’
- ‘nchar.subgroup’ instead of ‘bylab.nchar’
Internal changes
Bug fixes
Forest plots of meta-analyses assuming a common between-study
heterogeneity variance in subgroups resulted in an error (bug was
introduced in meta, version 4.16-0)
For GLMMs, export Wald-type Q statistic for residual
heterogeneity instead of missing value
Bug fixes
- metagen():
- set random effects weights equal to zero for estimates with standard
errors equal to NA (to fix error bubble.metareg)
- metareg():
- for three-level model, use ‘test = “t”’ instead of ‘test = “knha”’
in internal call of rma.mv()
User-visible changes
- summary.meta():
- print tau2 and tau for subgroups with single study if argument
‘tau.common = TRUE’
- bubble.metareg():
- show regression lines for a single categorical covariate
Major changes
Subgroup analysis for three-level model fully
implemented
New default for forest plots to show results of test for subgroup
differences in meta-analyses with subgroups
Calculation of weights for three-level random effects model using
weights.rma.mv() with argument ‘type = “rowsum”’ from R package
metafor
Print study label provided by argument ‘studlab’ for
meta-analysis with a single study
Total number of observations and events printed in summaries (if
available)
Bug fixes
- metagen():
- treatment estimates for three-level models with subgroups were not
based on common between-study variance despite argument ‘tau.common =
TRUE’
- metareg():
- use rma.mv() from R package metafor for three-level
models instead of rma.uni()
User-visible changes
- metabin(), metacont(), metacor(), metacr(), metagen(), metagen(),
metainc(), metamean(), metaprop(), metarate():
- new argument ‘test.subgroup’ to print results of test for subgroup
differences
- print.meta():
- for three-level models, column with grouping information added to
study details
- metagen():
- default for estimation of between-study variance has changed for
three-level models with subgroups, i.e., tau2 is allowed to be different
in subgroups by default
Internal changes
- metagen():
- new variable ‘.idx’ with running index in meta-analysis dataset
(list element ‘data’)
- new logical list element ‘three.level’ indicating whether
three-level model was used
Bug fixes
- For argument ‘adhoc.hakn = “ci”’, directly compare width of
confidence intervals of Hartung-Knapp method and classic random effects
meta-analysis
Major changes
- Calculate correct upper limit for confidence intervals of I2 and H2
in very homogeneous meta-analyses (i.e., if Q < k - 1)
Bug fixes
- forest.meta():
- correct order of p-values for homogeneity tests within subgroups if
argument ‘bysort = TRUE’
- calcH():
- set H = 1 in calculation of confidence interval for H if H < 1
(i.e., if Q < k - 1)
- metabias():
- bug fix for linear regression tests using metafor,
version 2.5-86
- metabind():
- bug fix for a single meta-analysis object
Internal changes
- metabias.bias():
- argument ‘…’ passed on to rma.uni()
- metagen():
- set list element ‘df.hakn’ to NA instead of NULL if condition met
for argument ‘adhoc.hakn = “ci”’
Major changes
- Prediction intervals for subgroups implemented
Bug fixes
- metacont():
- use correct variance formula for Glass’ delta
- metainc():
- update command resulted in an error Arguments ‘event.e’ and
‘n.e’ must have the same length for meta-analysis with subgroups
(due to list elements ‘n.e.w’ and ‘n.c.w’ which were interpreted as
‘n.e’ and ‘n.c’ containing missing values instead of being NULL)
- print.meta():
- use of argument ‘details = TRUE’ resulted in an error in
meta-analyses with duplicated study labels
- Consider argument ‘adhoc.hakn’ to calculate confidence intervals in
random effects subgroup meta-analyses
User-visible changes
- print.meta():
- column with information on subgroups added to details if argument
‘details = TRUE’
- forest.meta():
- new argument ‘text.predict.w’ to label the prediction interval in
subgroups
- arguments ‘text.fixed.w’ and ‘text.random.w’ checked for correct
length
- Ad hoc variance correction for Hartung-Knapp method not
available for GLMMs
Internal changes
- metacont():
- get rid of warnings ‘Unknown or uninitialised column’ if argument
‘subset’ is used
- subgroup():
- calculate prediction intervals for subgroups
Major changes
- Tests of funnel plot asymmetry:
- New dataset Pagliaro1992 for meta-analysis on prevention of first
bleeding in cirrhosis (Pagliaro et al.,
1992)
Bug fixes
- update.meta():
- do not switch to three-level model if method.tau = “ML”
User-visible changes
- metabias():
- use name of first author to select test for funnel plot asymmetry
instead of “rank”, “linreg”, “mm”, “count”, and “score” (can be
abbreviated; old names are still recognised)
- print.metabias():
- new arguments ‘digits.stat’, ‘digits.se’, ‘digits.pval’,
‘scientific.pval’, ‘big.mark’, ‘zero.pval’, ‘JAMA.pval’
Internal changes
- linregcore():
- complete rewrite using rma.uni() and regtest() from R package
metafor
Bug fixes
- drapery():
- use correct limits on y-axis for argument ‘type = “zvalue”’
User-visible changes
- funnel.meta():
- inverse of square root of sample size can be plotted on y-axis
(argument ‘yaxis = “invsqrtsize”’)
- forest.meta():
- consider input for argument ‘hetstat’ to print heterogeneity
statistics for overall results (see argument ‘overall.hetstat’)
- metabin(), metacont(), metacor(), metagen(), metagen(), metainc(),
metamean(), metaprop(), metarate():
- studies with missing values for subgroup variable (argument ‘byvar’)
can be excluded from meta-analysis using argument ‘subset’
Internal changes
- funnel.meta():
- try to derive sample sizes from list elements ‘n.e’ or ‘n.c’ if
argument ‘yaxis = “size”’
Bug fixes
- For argument ‘adhoc.hakn = “ci”’, use correct query to determine
whether confidence interval of Hartung-Knapp method is smaller than
classic random effects meta-analysis (Hybrid method 2 in Jackson et
al., 2017)
Major changes
Three-level meta-analysis models can be fitted for generic and
continuous outcomes (Van den Noortgate et.,
2013) by calling rma.mv() from R package metafor
internally
Measures I2 and H for residual heterogeneity are based on Q
statistic for residual heterogeneity (instead of taken directly from
metafor package)
Additional ad hoc method implemented if confidence
interval of Hartung-Knapp method is smaller than classic random effects
meta-analysis (Hybrid method
2 in Jackson et al., 2017)
For funnel plot of a diagnostic test accuracy meta-analysis, use
effective sample size (Deeks et.,
2005) by default on the y-axis
New function metamerge() to merge pooled results of two
meta-analyses into a single meta-analysis object
Bug fixes
- metabin():
- Mantel-Haenszel method of risk differences did not use continuity
correction in case of studies with a zero cell count (argument ‘MH.exact
= FALSE’)
- metabin(), metainc(), metaprop(), metarate():
- for GLMMs, confidence limits for classic random effects
meta-analysis were calculated instead of confidence limits for
Hartung-Knapp if argument ‘hakn = TRUE’
- metabin(), metainc(), metaprop(), metarate():
- works for GLMMs with zero events or number of events equal to number
of patients in all studies
- forest.meta():
- print results for test of subgroup effect in correct order if
argument ‘bysort = TRUE’
- read.rm5():
- list elements ‘method’ and ‘sm’ had been encoded as a factor instead
of character under R-versions below 4.0 which resulted in an error using
metacr()
User-visible changes
Do not print empty confidence intervals for heterogeneity
statistics
metacont(), metagen(), update.meta():
- new argument ‘id’ to specify which estimates belong to the same
study (or laboratory) in order to use three-level model
metabind():
- argument ‘…’ can be a single list of meta-analysis objects
- meta-analyses can use different methods, e.g., different estimators
of the between-study variance
All meta-analysis functions:
- argument ‘adhoc.hakn = “iqwig6”’ instead of ‘adhoc.hakn = “ci”’ uses
the ad hoc method for Hartung-Knapp method described in General
Methods 6.0 (IQWiG, 2020)
- argument ‘adhoc.hakn = “ci”’ uses the ad hoc method
described in Jackson et al. (2017)
forest.meta():
- column heading “Mean” instead of “MLN” for meta-analysis object
created with metamean() with arguments ‘sm = “MLN”’ and ‘backtransf =
TRUE’
- study labels specified by argument ‘studlab’ tried to catch from
meta-analysis object
- do not print statistic for residual heterogeneity if argument
‘tau.common = FALSE’ was used to conduct subgroup meta-analysis
metainc():
- square root transformed incidence rate difference added as new
summary measure (sm = “IRSD”)
New arguments ‘text.fixed’, ‘text.random’, ‘text.predict’,
‘text.w.fixed’ and ‘text.w,random’ in meta-analysis functions
settings.meta():
- new general setting “geneexpr” to print scientific p-values and not
calculate confidence interval for between-study heterogeneity variance
tau2
- argument ‘method.tau.ci’ can be specified as a global setting
- text for fixed effect and random effects model as well as prediction
interval can be specified (arguments ‘text.fixed’, ‘text.random’,
‘text.predict’, ‘text.w.fixed’, ‘text.w.randon’)
print.meta(), print.summary.meta():
- do not print information on continuity correction for exact
Mantel-Haenszel method with single study
metareg() can be used in loops to provide argument
‘formula’
New auxiliary function JAMAlabels() to create study labels in
JAMA layout
Internal changes
- Calculate measures of residual heterogeneity in hetcalc()
Bug fixes
- metacr():
- set summary measure to “OR” for Peto odds ratio
Major changes
Deeks’ linear regression test for funnel plot asymmetry of funnel
plots of diagnostic test accuracy studies implemented (Deeks et.,
2005)
Effective sample size (Deeks et.,
2005) can be used on y-axis of funnel plot
Discard infinite estimates and standard errors from calculation
of heterogeneity measures
Diagnostic odds ratio (sm = “DOR”) added as new effect measure in
metabin() and metagen()
User-visible changes
forest.meta(), forest.metabind():
- arguments ‘digits.zval’ and ‘print.zval’ renamed to ‘digits.stat’
and ‘print.stat’
print.summary.meta(), settings.meta():
- argument ‘digits.zval’ renamed to ‘digits.stat’
metacr():
- do not print a warning for inverse variance meta-analysis with
binary outcome
Help page for tests of funnel plot asymmetry updated
Help pages for metabin() and metainc() updated
Major changes
Median and related statistics can be used in meta-analysis with
continuous outcomes to approximate means and standard deviations (Wan et., 2014; Luo et al., 2018; Shi et al., 2020)
RevMan 5 analysis datasets can be imported directly using the
RM5-file
R package xml2 added to Imports (RM5-files are
in XML-format)
Confidence intervals for individual studies can be based on
quantile of t-distribution (only implemented for mean differences and
raw untransformed means at the moment)
For the generic inverse variance method,
- methods by Luo et
al. (2018) implemented to estimate mean from sample size, median and
other statistics
- method by Shi et
al. (2020) implemented to estimate the standard deviation from
sample size, median, interquartile range and range
Bug fixes
- forest.meta():
- show all studies with estimable treatment effects if argument
‘allstudies = FALSE’
- metabind():
- works with meta-analysis objects created with metacor()
- calculate correct p-value for heterogeneity test if input are
subgroup analyses of the same dataset
- calculate correct p-value for within-subgroup heterogeneity test if
input are subgroup analyses of the same dataset
- metacum():
- works with Hartung-Knapp method
- metagen():
- list element ‘seTE’ contained standard deviation instead of standard
error for method by Wan et. (2014) to
estimate mean and its standard error from median and other
statistics
User-visible changes
read.rm5():
- direct import of RM5-file possible
- new argument ‘debug’ for debug messages while importing RM5-files
directly
metacr():
- overall results not shown if this was specified in the Cochrane
review (only applies to imported RM5-files)
metagen(), metacont(), metamean():
- new argument ‘method.mean’ to choose method to estimate mean from
sample size, median and other statistics
- new argument ‘method.sd’ to choose method to estimate standard
deviation from sample size, median, interquartile range and range
- new argument ‘method.ci’ to choose method for confidence intervals
of individual studies (only applies to mean differences and raw
untransformed means at the moment)
metacont():
- new arguments to estimate mean and standard deviation from median
and related statistics: ‘median.e’, ‘q1.e’, ‘q3.e’, ‘min.e’, ‘max.e’,
‘median.c’, ‘q1.c’, ‘q3.c’, ‘min.c’, ‘max.c’, ‘method.mean’,
‘method.sd’, ‘approx.mean.e’, ‘approx.mean.c’, ‘approx.sd.e’,
‘approx.sd.c’
metamean():
- new arguments to estimate mean and standard deviation from median
and related statistics: ‘median’, ‘q1’, ‘q3’, ‘min’, ‘max’,
‘method.mean’, ‘method.sd’, ‘approx.mean’, ‘approx.sd’
forest():
- by default, show number of participants in forest plot if this
information is available for meta-analysis objects created with
metagen()
- automatically format p-values for individual studies if added to
forest plot using argument ‘leftcols’ or ‘rightcols’
Datasets renamed from Fleiss93, Fleiss93cont and Olkin95 to
Fleiss1993bin, Fleiss1993cont and Olkin1995
More sensible variable names in datasets Fleiss1993bin,
Fleiss1993cont and Olkin1995
Internal changes
Previous R function read.rm5() for CSV-files renamed to
read.rm5.csv()
New auxiliary functions extract_outcomes(), oct2txt() and
read.rm5.rm5() to import RevMan 5 analysis datasets
ci():
- list element ‘z’ renamed to ‘statistic’ as calculations can also be
based on the t-distribution; list element ‘z’ is still part of the
output for backward compatibility, however, could be removed in a future
update
metagen():
- list elements ‘zval’, ‘zval.fixed’ and ‘zval.random’ renamed to
‘statistic’, ‘statistic.fixed’ and ‘statistic.random’; list elements
‘zval’, ‘zval.fixed’ and ‘zval.random’ are still part of the output for
backward compatibility, however, could be removed in a future
update
Internal functions TE.seTE.iqr.range(), TE.seTE.iqr() and
TE.seTE.range() renamed to mean.sd.iqr.range(), mean.sd.iqr() and
mean.sd.range()
mean.sd.iqr.range():
- new arguments ‘method.mean’ and ‘method.sd’
mean.sd.iqr(), mean.sd.range():
- new argument ‘method.mean’
chkchar(), chkcolor(), chklevel(), chknumeric():
- argument ‘single’ renamed to ‘length’ (which can be used to test for
a specific vector length instead whether it is a single value) (argument
‘single’ is still available for backward compatibility, however, will be
removed in a future update)
Major changes
Rely on generic functions from R package
metafor, e.g., to produce forest or funnel plots (since
R version 4.0.0 generic functions from an R package do not consider
corresponding functions from another R package which can result in
errors if R packages meta and metafor
are both loaded)
R function funnel.default() removed from meta
due to conflict with metafor
Major changes
User-visible changes
- drapery():
- study IDs or study labels can be printed at the top of the drapery
plot to identify individual studies
- more flexible plots, e.g., colours can be specified for individual
studies based on p-value of treatment effect
- possible value for argument ‘type’ renamed from “cvalue” to “zvalue”
as drapery plots show test statistics, not critical values
- funnel.meta(), funnel.default():
- argument ‘log’ is considered for relative summary measures, e.g.,
odds or risk ratio
- metaprop():
- can be used with non-integer number of events and sample sizes
- metabias.meta(), metabias.default():
- third component of list element ‘estimate’ renamed from “slope” to
“intercept” for linear regression tests
- settings.meta():
- new possible general settings: “iqwig5” and “iqwig6”,
respectively
- Use Markdown for NEWS
Major changes
New arguments ‘overall’ and ‘overall.hetstat’ in meta-analysis
functions to control printing of overall meta-analysis results (useful
to only show subgroup results)
For GLMMs, use Wald-type Q statistic to calculate I2 of residual
heterogeneity in meta-analysis with subgroups (instead of
likelihood-ratio Q statistic)
Bug fixes
User-visible changes
- forest.meta():
- possible to print results for test of an overall effect or subgroup
differences even if meta-analysis results are not shown
- new defaults for arguments ‘overall’ and ‘overall.hetstat’ (which
are now considered from meta-analysis objects)
- print.summary.meta():
- for meta-analysis with subgroups, print information on Q and I^2
with fixed effect results and information on tau and tau^2 with random
effects results (previously, information on Q, I^2, tau, and tau^2 was
reported twice)
Internal changes
- do not calculate confidence limits for tau2 and tau in intermediate
calculations of other quantities (i.e., use argument ‘method.tau.ci =
““’)
Major changes
- New function drapery() to generate a drapery plot which is based on
p-value curves
Bug fixes
- funnel.meta():
- print contours in contour-enhanced funnel plots at correct position
for relative effect measures (bug was introduced in
meta, version 4.9-8)
User-visible changes
- update.meta():
- do not print a warning concerning argument ‘Q.Cochrane’ if argument
‘sm = “ASD”’ for meta-analysis objects created with metabin()
- print.summary.meta():
- do not print z- and p-values if test for an overall effect was not
conducted; see argument ‘null.effect’ in metamean(), metaprop(), and
metarate()
Bug fixes
- forest.meta():
- printing an additional column on the right side of the forest plot
does not result in an error (bug was introduced in
meta, version 4.9-8)
User-visible changes
- labbe():
- new argument ‘pos.studlab’
- argument checks implemented
- baujat(), bubble():
- argument ‘pos’ renamed to ‘pos.studlab’
- argument checks implemented
Major changes
Confidence intervals for the between-study variance tau2 and its
square root tau are calculated
Print tau as well as confidence intervals for tau2 and tau in
outputs
Square root of between-study variance can be printed in forest
plots instead of between-study variance tau2; in addition, the
confidence interval for tau2 or tau can be printed
Use R package metafor to estimate between-study
variance tau2 for DerSimonian-Laird and Paule-Mandel method (which has
been already used for all other methods to estimate tau2)
For Mantel-Haenszel (MH) method, report results as MH method
(instead of inverse variance, IV) for meta-analysis of binary outcome
with a single study (results are identical for MH and IV method in this
situation)
Number of studies printed without digits in forest plots for R
objects created with metabind()
P-values can be printed according to JAMA reporting
standards
In subgroup analyses, print the group labels instead of levels if
the grouping variable is a factor
In funnel plot, print funnel around random effects (instead of
fixed effect) estimate if only random effects meta-analysis is
conducted; only show funnel if either fixed effect or random effects
meta-analysis was conducted
New preferred citation of R package meta: Balduzzi et
al. (2019)
User-visible changes
print.summary.meta(), forest.meta():
- new argument ‘JAMA.pval’ to print p-values according to JAMA
reporting standards
print.summary.meta():
- new argument ‘zero.pval’ to remove leading zeros from p-values
- print information on estimation of between-study variance even if
only results for fixed effect model is shown
- print information if Mantel-Haenszel estimate is used to calculate Q
and tau2 (implemented similar to RevMan 5)
- global setting for ‘text.tau2’ as defined in settings.meta() is
considered in details of meta-analytical method
print.meta():
- do not print (missing) weights for GLMMs
update.meta():
- by default, do not print warnings (argument ‘warn’)
- add information on variable defining subgroups (argument ‘byvar’) to
meta-analysis dataset
Command ‘settings.meta(“JAMA”)’ will change the settings for
arguments ‘zero.pval’ and ‘JAMA.pval’
Help page with description of R package updated
Major update of other help pages:
- metacont(), metacor(), and metamean()
Internal changes
Function paulemandel() removed as R package
metafor is used to estimate the between-study
variance
formatPT():
List elements ‘C’ and ‘C.w’ (scaling factor to estimate common
between-study variance) removed from meta-analysis objects
Import confint.rma.uni() from metafor to
calculate confidence intervals for tau2 and tau
New internal function pasteCI() to print formatted CIs
New internal function is.wholenumber() to check for whole
numbers
Major changes
- Subgroup analysis using argument ‘byvar’ possible for generalised
linear mixed models (GLMMs)
Bug fixes
- metaprop():
- no error if argument ‘tau.common’ is TRUE for GLMM
- metabin(), metainc(), metarate():
- consider argument ‘control’ in subgroup analysis
User-visible changes
- Major update of help pages:
- metabin(), metagen(), metainc(), metaprop(), metarate()
Major changes
New functions to calculate the number needed to treat from the
results of a meta-analysis
Equivalence limits can be added to forest plots
Font family can be specified in forest plots
Print Wald-type test of heterogeneity for generalised linear
mixed models (problem fixed in R package metafor,
version 2.1-0)
Bug fixes
- forest.meta():
- (always) print correct length for reference line
- (always) print label on x-axis at the correct vertical position
- (always) print graph labels on the left and right side of the forest
plot at the correct vertical position
- no error if additional numeric variable is added to the right side
of the forest plot (argument ‘rightcols’)
- summary.meta():
- consider argument ‘bylab’
- metaprop():
- allow values 0 and 1 for argument ‘null.effect’
User-visible changes
- forest.meta():
- new arguments ‘lower.equi’, ‘upper.equi’, ‘lty.equi’, ‘col.e’ and
‘fill.equi’ to add equivalence limits
- new argument ‘fontfamily’ to specify the font family
- forest.metabind():
- information on heterogeneity printed for each meta-analysis
Internal changes
- ciAgrestiCoull():
- set lower confidence limit to 0 for negative values
- set upper confidence limit to 1 for values above 1
- subgroup meta-analyses return new list element ‘pval.Q.w’
Major changes
For the generic inverse variance method, treatment estimates and
standard errors of individual studies can be derived from
- p-value or confidence limits
- sample size, median, interquartile range and / or range (Wan et
al. (2014), BMC Med Res Meth, 14, 135)
New functions for the conversion of effect measures:
- smd2or() - from standardised mean difference to log odds ratio
- or2smd() - from log odds ratio to standardised mean difference
Harbord test for funnel plot asymmetry implemented for risk ratio
as effect measure
Generalised linear mixed model is the new default method for
meta-analysis of single proportions using the logit
transformation
R packages metafor and lme4
moved from Suggests to Imports
Suppress printing of Wald-type test of heterogeneity for
generalised linear mixed models (problem in R function rma.glmm() from R
package metafor, version 2.0-0)
Use roxygen2 for development of R package
meta
User-visible changes
- metagen():
- new arguments ‘pval’, ‘df’, ‘lower’, ‘upper’, ‘level.ci’, ‘median’,
‘q1’, ‘q3’, ‘min’, ‘max’, ‘approx.TE’, ‘approx.seTE’ to approximate
treatment estimates and / or standard errors from other information
- forest.meta():
- printing of leading zeros in p-values can be suppressed (new
argument ‘zero.pval’)
- rounding of values for additional numerical columns possible (new
arguments ‘digits.addcols’, ‘digits.addcols.left’, and
‘digits.addcols.right’)
- argument ‘big.mark’ is considered for additional columns
- new arguments ‘type.subgroup.fixed’, ‘type.subgroup.random’, and
‘lab.NA.weight’
- settings.meta(), gs():
- argument names can be abbreviated
- Major update of help pages of metagen() and metaprop()
Bug fixes
- metacum(), metainf():
- consider argument ‘method’ for meta-analysis objects created with
metaprop() or metarate()
- forest.meta():
- argument ‘studlab’ can be used with objects created with metacum()
or metainf()
- subgroup():
- return subgroup sample sizes for objects created with metagen()
Internal changes
New internal functions TE.seTE.ci(), TE.seTE.iqr(),
TE.seTE.iqr.range(), TE.seTE.range(), and seTE.ci.pval() to approximate
treatment estimates or standard errors from other information
setchar():
- new argument ‘stop.at.error’
metagen():
- list element ‘data’ contains the dataset of the meta-analysis object
(i.e., list element ‘data’) instead of the whole meta-analysis
object
Major changes
- Information on residual heterogeneity in meta-analyses with
subgroups shown in printouts and forest plots
User-visible changes
- forest.meta():
- new arguments ‘resid.hetstat’ and ‘resid.hetlab’ to control printing
of information on residual heterogeneity in meta-analyses with
subgroups
Bug fixes
- forest.meta():
- works in meta-analyses with subgroups if argument ‘allstudies =
FALSE’
Major changes
- New argument ‘control’ in meta-analysis functions which is passed on
to R function rma.uni() or rma.glmm() from R package
metafor to control the iterative process to estimate
the between-study variance tau^2
User-visible changes
- metabin(), metacont(), metacor(), metagen(), metainc(), metamean(),
metaprop(), metarate(), update.meta():
- new argument ‘control’ (see major changes)
- forest.meta():
- new argument ‘calcwidth.subgroup’
Bug fixes
- bubble.metareg():
- ignore missing values in covariate to calculate limits on
x-axis
- works if dataset used to create meta-analysis object is a tibble
instead of a data frame
Internal changes
- metabind():
- argument ‘tau.common’ only considered for subgroup analyses
- hetcalc():
- argument ‘control’ passed on to R function rma.uni() from R package
metafor
- metacum(), metainf(), subgroup():
- argument ‘control’ from meta-analysis objects considered
Major changes
- All p-values of Q statistics are list elements of meta-analysis
objects
Bug fixes
- metareg():
- consider argument ‘intercept = FALSE’ if argument ‘formula’ has been
provided
Internal changes
- New internal function replaceNULL()
Major changes
Subgroup results consider the exclusion of individual studies
(bug fix)
For generalised linear mixed models, between-study variance set
to NA if only a single study is considered in meta-analysis
Bug fixes
- metamean():
- use of argument ‘byvar’ for subgroup analyses possible
- metacor(), metamean(), metaprop(), metarate():
- use as input to metabind() possible
- Internal function subgroup():
- consider argument ‘exclude’ in subgroup analyses
- Internal function bylevs():
- drop unused levels if subgroup variable is a factor variable
User-visible changes
- print.summary.meta():
- print information on Generalised Linear Mixed Model (GLMM) for
metarate() objects
- print information on increments added to calculate confidence
intervals for individual studies (for metarate() with GLMM)
- funnel.meta():
- new arguments ‘ref.triangle’, ‘lty.ref’, ‘lwd.ref’, ‘col.ref’, and
‘lty.ref.triangle’ to add reference value (null effect) and
corresponding confidence intervals to the funnel plot
- metabin():
- new argument ‘pscale’ to change printout of risk differences
- metainc():
- new arguments ‘irscale’ and ‘irunit’ to change printout of incidence
rate differences
- forest.meta(), print.meta(), print.summary.meta(), update.meta():
- consider arguments ‘pscale’, ‘irscale’, and ‘irunit’ for
meta-analysis objects created with metabin() and metainc()
- print.meta():
Internal changes
- metaprop():
- for random effects model, rma.glmm() from package
metafor is called internally with argument ‘method =
“FE”’ if only a single study is available
- metareg():
- for generalised linear mixed models, fallback to fixed effect model
if number of studies is too small for random effects
meta-regression
- asin2ir():
- back transformation could result in (very small) negative zero
values due to imprecisions (-1e-19); these values are set to zero
now
- subgroup():
- code for metamean() added
- chkchar():
- new argument ‘nchar’ to test the length of character string(s)
- New internal function is.untransformed() to check for effect
measures without (back) transformation
Major changes
New function metamean() to conduct meta-analysis of single
means
New function metabind() to combine meta-analysis objects, e.g. to
generate a forest plot with results of several subgroup
analyses
Subgroup analysis implemented for generalised linear mixed models
(GLMMs) with and without assumption of common between-study variance
(arguments ‘byvar’ and ‘tau.common’)
Axis direction can be reversed for x-axis in forest
plots
Source code version of meta can be installed
without compilation, i.e., without use of Rtools on Windows or
‘Command-line tools for Xcode’ on macOS
Rank test for funnel plot asymmetry uses cor() from R package
stats instead of internal C routine (negligibly slower,
however, no need for compilation of source installs)
Thousands separator can be used in printouts and forest plots for
large numbers
P-values equal to 0 are actually printed as “0” instead of “<
0.0001”
User-visible changes
- forest.meta(), print.meta(), print.summary.meta():
- new argument ‘big.mark’ to specify character printed as thousands
separator, e.g., big.mark = “,” will result in printing of “1,000”
instead of “1000”
- forest.meta():
- sensible forest plot generated if first value in argument ‘xlim’ is
larger than second value, e.g. xlim = c(10, -10)
- separator between label and levels of grouping variable (argument
‘byseparator’) is considered from meta-analysis object
- for relative summary measures, e.g., odds ratio and risk ratio,
labels on x-axis are not rounded to two digits (which resulted in the
value 0 for a tick-mark at 0.001)
- bug fix: lines for treatment effect in fixed effect and random
effects model start in center of diamond if argument ‘hetstat =
FALSE’
- bug fix: argument ‘type.study’ will be sorted according to arguments
‘sortvar’
- metaprop():
- arguments ‘byvar’ and ‘tau.common’ can be used for GLMMs
- Help page with overview of R functions in R package
meta updated
Internal changes
New internal functions:
- is.log.effect() to check for treatment effects combined on log
scale
- is.mean() to check whether summary measure refers to meta-analysis
of single means
Renamed internal functions:
- formatCI() instead of p.ci()
- formatN() instead of format.NA()
- formatPT() instead of format.p()
Removed R functions:
- format.tau() as functionality is now provided by formatPT()
- C program kenscore.c as cor() from R package stats
is used instead to calculate Kendall’s tau
Deprecated functions: format.NA(), format.p(), p.ci()
Check whether argument ‘sm’ is NULL in meta-analysis
functions
subgroup(): extended for GLMMs
formatPT():
- zero p-values are printed as “0” instead of “< 0.001”
- NaNs are handled like NAs
bylabel(), catmeth(), formatPT(), formatN(), xlab():
- new argument ‘big.mark’ (see above)
User-visible changes
- forest.meta():
- new arguments ‘col.fixed’ and ‘col.random’ to change colour of fixed
effect and random effects lines
Bug fixes
- bubble.metareg():
- works if covariate in metareg() is not part of dataset used to
generate meta-analysis object
- forest.meta():
- lines for treatment effect in fixed effect and random effects model
always start in center of diamond
- metacum(), metainf():
- argument ‘model.glmm’ considered for metabin() and metainc()
objects
- print.summary.meta():
- print transformed null effect for meta-analysis of single
correlations, proportions, or rates if argument ‘backtransf = FALSE’,
i.e., for metacor(), metaprop(), and metarate() objects
- trimfill.meta():
- argument ‘null.effect’ is considered to calculate p-value for fixed
effect and random effects model for metacor(), metaprop(), and
metarate() objects
Internal changes
New internal functions is.cor(), is.prop() and is.rate() to check
whether summary measure refers to meta-analysis of correlations,
proportions, or rates
metabias.default(), radial.default(), trimfill.default():
- call metagen() internally to create meta-analysis object
- call metabias.meta(), radial.meta(), or trimfill.meta() internally
to conduct analysis
Major changes
Similar to RevMan 5, individual studies can be excluded from
meta-analysis, however, will be shown in printouts and forest
plots
In forest plots, line spacing can be determined by the
user
User-visible changes
metabin(), metacor(), metacont(), metagen(), metainc(),
metaprop(), metarate():
- new argument ‘exclude’ to exclude studies from meta-analysis
forest.meta():
- new argument ‘spacing’ to determine line spacing
- bug fix for for meta-analysis with standardized mean difference (sm
= “SMD”) and argument ‘layout = “RevMan5”’
R function ci() can be used with vectors or matrices of treatment
estimates and standard errors and a single value for argument ‘df’,
i.e., degrees of freedom (which is used in R package
netmeta to calculate prediction intervals for network
meta-analysis estimates)
metacum(), metainf():
- argument ‘null.effect’ considered internally for objects generated
with metacor(), metagen(), metaprop() and metarate()
Internal changes
- baujat.meta(), metabias.meta(), metacum(), metainf(), forest.meta(),
funnel.meta(), metareg(), print.meta(), radial.meta(), trimfill.meta(),
update.meta():
- changes to deal with excluded studies
Major changes
Calculate confidence interval for I2 in a meta-analysis with two
studies if the heterogeneity statistic Q is larger than 2
P-values can be printed in scientific notation
In forest plots, printing of z-values can be disabled and labels
for tests can be changed by user
User-visible changes
forest.meta():
- new argument ‘print.zval’ to print (default) or not print z-value
for test of treatment effect
- new argument ‘print.Q.subgroup’ to print (default) or not print
Chi-squared statistic for test of subgroup differences
- bug fix: print first line above second line if argument ‘xlab’
consists of two lines (bug was introduced in meta,
version 4.8-0)
- labels of additional columns are printed in correct line if label
consists of two lines
- new argument ‘scientific.pval’ to print p-values in scientific
notation, e.g., 1.2345e-01 instead of 0.12345
- arguments ‘label.test.overall.fixed’, ‘label.test.overall.random’,
‘label.test.subgroup.fixed’, ‘label.test.subgroup.random’,
‘label.test.effect.subgroup.fixed’, ‘label.test.effect.subgroup.random’
work as expected
- new argument ‘text.subgroup.nohet’ to enable the user to change the
text “not applicable” in the line with heterogeneity statistics for a
subgroup with less than two studies contributing to the
meta-analysis
- forest plot without any study contributing to meta-analysis can be
generated without an error, e.g., meta-analysis with binary outcome,
sm=“OR”, and all event numbers equal to zero
print.meta() and print.summary.meta():
- new argument ‘scientific.pval’ to print p-values in scientific
notation, e.g., “1.2345e-01” instead of “0.12345”
- new arguments ‘print.pval’ and ‘print.pval.Q’ to specify number of
significant digits for p-values
R command ‘help(meta)’ can be used to show brief overview of R
package meta
Substantially decrease number of automatically run examples for
forest.meta() as CRAN only allows a run time below 10 seconds for
examples provided on a help page
Internal changes
User-visible changes
- metacum(), metainf():
- bug fix for meta-analysis objects without continuity correction,
i.e., metacont(), metacor(), metagen() (bug was introduced in
meta, version 4.8-0)
- bug fix for metarate() objects due to improper use of metaprop()
internally
Major changes
- Continuity correction can be specified for each individual study in
meta-analysis with proportions or incidence rates
User-visible changes
- metabin(), metainc(), metaprop(), metarate():
- argument ‘incr’ can be of same length as number of studies in
meta-analysis
- metaprop():
- bug fix in studies with missing information for events or sample
size and argument ‘method.ci = “CP”’
- bug fix to calculate test for an overall effect
- forest.meta():
- bug fix to print summary label (argument ‘smlab’) above forest plot
if argument ‘fontsize’ is unequal to 12
- by default, label on x-axis and text on top of forest plot are
printed in center of forest plot (arguments ‘xlab.pos’,
‘smlab.pos’)
- print.summary.meta():
- print number of studies for fixed effect meta-analysis using
Mantel-Haenszel method if different from number of studies in random
effects model (only if summary measure is “RD” or “IRD” and at least one
study has zero events)
- metainc():
- bug fix to consider argument ‘incr’ for incidence rate
difference
Internal changes
act on NOTE in CRAN checks with R version, 3.4.0, to register and
declare native C routine ‘kenscore’
metabin(), metainc():
- new list element ‘k.MH’ with number of studies in meta-analysis
using Mantel-Haenszel method
forest.meta():
- auxiliary R functions removed from R code
- cleaning / shortening of R code
new auxiliary R functions used in forest.meta():
- add.label(), add.text(), add.xlab(), draw.axis(), draw.ci.square(),
draw.ci.diamond(), draw.ci.predict(), draw.forest(), draw.lines(),
formatcol(), removeNULL(), tg(), tgl(), twolines(), wcalc()
hetcalc(), calcH():
- set heterogeneity statistics tau2, H and I2 to NA if only a single
study contributes to meta-analysis
updateversion():
- use R function update.meta() if version of meta
used to create R object is below 3.2
Major changes
Null hypothesis for test of an overall effect can be specified
for metacor(), metagen(), metaprop(), and metarate(); for all other
meta-analysis functions implicit a null effect of zero is assumed (for
relative effect measures, e.g., odds ratio and hazard ratio, the null
effect is defined on the log scale)
User can choose whether to print the following heterogeneity
quantities: I^2, H, Rb (by default, heterogeneity measure Rb is not
printed and thus revoking a change in meta,
4.7-0)
In forest plots with subgroups, study weights are summed up to
100 percent within each subgroup if no overall estimates are requested,
i.e., argument ‘overall = FALSE’ (like before, by default, weights are
not printed if argument ‘overall = FALSE’ and have to be explicitely
requested using argument ‘leftcols’ or ‘rightcols’)
User-visible changes
- forest.meta():
- print line with heterogeneity statistics directly below individual
study results if pooled effects are not shown in forest plot (overall =
FALSE)
- print right and left labels (arguments ‘label.left’, ‘label.right’)
in correct line if arguments ‘overall = FALSE’ and ‘addrow = FALSE’
- bug fix: do not stop with an error if ‘comb.fixed = FALSE’,
‘comb.random = FALSE’, and ‘overall.hetstat = TRUE’
- ci(), metacor(), metagen(), metaprop(), metarate():
- new argument ‘null.effect’ to specify null hypothesis for test of an
overall effect, e.g., null.effect = 0.5 in metaprop() to test whether
the overall proportion is equal to 0.5
- metagen():
- Hartung-Knapp method only used for at least two studies in
meta-analysis
- print.meta():
- print covariate with subgroup information for each study, if
subgroup analysis is conducted (argument ‘byvar’)
- print.summary.meta():
- new arguments ‘print.I2’, ‘print.H’ and ‘print.Rb’ to specify
heterogeneity measures shown in output
- new arguments ‘text.tau2’, ‘text.I2’ and ‘text.Rb’ to change text
printed to identify respective heterogeneity measure
- only print information on double zero studies if argument
‘allstudies = TRUE’
- print results for (empty) subgroup in meta-analysis with two studies
and one subgroup with missing treatment estimate
- settings.meta():
- new arguments ‘print.I2’, ‘print.H’, ‘print.Rb’, ‘text.tau2’,
‘text.I2’ and ‘text.Rb’ to modify printing of heterogeneity
measures
Internal changes
- summary.meta():
- bug fix renaming list element ‘ircale’ renamed to ‘irscale’
- list element ‘within’ removed which has not been used since
meta, version 1.1-4
Major changes
Forest plots:
- forest plots with RevMan 5 and JAMA layout
- use of mathematical symbols for I^2, tau^2, etc.
- individual study results can be omitted from forest plot (especially
useful to only print subgroup results)
- labels can be printed at top of forest plot
Measure of between-study heterogeneity added:
Default settings of meta-analysis methods specified via gs()
instead of extracting elements of list .settings (which makes output of
args() easier to read, e.g., args(metabin))
Version of suggested R package metafor must be
at least 1.9-9 (due to change in arguments of rma.uni() and
rma.glmm())
User-visible changes
forest.meta():
- argument ‘layout’:
- new layout “JAMA” to produce forest plots with JAMA
style
- RevMan 5 layout extended
- arguments can be specified without using grid::unit(): ‘plotwidth’,
‘colgap’, ‘colgap.left’, ‘colgap.right’, ‘colgap.studlab’,
‘colgap.forest’, ‘colgap.forest.left’, ‘colgap.forest.right’
- new argument ‘study.results’ to print (default) or omit individual
study results from forest plot
- new argument ‘bottom.lr’ to change position of labels on left and
right side of forest plot
- new arguments ‘col.label.right’ and ‘col.label.left’ to change
colour of labels on left and right side of forest plot
- argument ‘weight’ renamed to ‘weight.study’ and new argument
‘weight.subgroup’ added to specify whether plotted subgroup results
should be of same or different size
- new arguments ‘print.Rb’, ‘print.Rb.ci’ and ‘Rb.text’ for
heterogeneity measure Rb
- new arguments to control printing: ‘digits.cor’, ‘digits.mean’,
‘digits.sd’, ‘digits.time’, ‘digits.zval’
- new argument ‘print.subgroup.labels’ to print (default) or omit rows
with subgroup label from forest plot
- new argument ‘type.subgroup’ to change plotting of subgroup
results
- argument ‘addspace’ renamed to ‘addrow’
- new argument ‘addrow.subgroups’ to add a blank line between subgroup
results
- new argument ‘addrow.overall’ to add a blank before meta-analysis
results
- new argument ‘blanks’ to enhance printing of test statistics,
heterogeneity measures, and p-values
- new argument ‘colgap.studlab’ to specify space between column with
study labels and subsequent column
- new arguments to change width of column with study labels (these
arguments are especially useful if only study labels are printed on left
side of forest plot):
- ‘calcwidth.fixed’ (consider text for fixed effect model)
- ‘calcwidth.random’ (consider text for random effects model)
- ‘calcwidth.hetstat’ (consider text for heterogeneity measures)
- ‘calcwidth.tests’ (consider text for tests of effect or subgroup
differences)
- new column “effect.ci” with estimated treatment effect and
confidence interval in one column
- unnecessary arguments removed: ‘text.I2’, ‘text.tau2’
metabin(), metacont(), metacor(), metacr(), metacum(), metagen(),
metainc(), metainf(), metaprop(), metarate(), trimfill.default(),
trimfill.meta():
- new measure of between-study heterogeneity implemented (list
elements ‘Rb’, ‘lower.Rb’, ‘upper.Rb’)
summary.meta():
- new measure of between-study heterogeneity added (list element
‘Rb.w’)
print.meta(), print.summary.meta():
- print heterogeneity measure Rb
metabias.meta(), metabias.default():
- checks for arguments implemented
New function gs() to get default settings
forest.meta(), metabin(), metacont(), metacor(), metacr(),
metagen(), metainc(), metaprop(), metarate(), print.meta(),
print.summary.meta():
- use gs() to define defaults for arguments in meta-analysis
functions, e.g. gs(“hakn”) instead of .settings$hakn
metareg():
- stop with an error if version of metafor package is
below 1.9-9
metabin(), metainc(), metaprop(), metarate():
- for GLMMs, stop with an error if version of metafor
package is below 1.9-9
metabin():
- bug fix, do not stop with an error if no double zero events are
present in a dataset with at least one study with NA event counts
metareg():
- bug fix, use of covariate ‘x’ does not result in an error
settings.meta():
- general settings for RevMan 5 and JAMA implemented
- function can be used to change the layout of confidence intervals
using arguments ‘CIbracket’ and ‘CIseparator’ which can also be set
using cilayout()
Several help pages updated, especially
- forest.meta(), settings.meta(), meta-package
Internal changes
- metabin(), metainc(), metaprop(), metarate(), metareg():
- use argument ‘test’ instead of ‘knha’ and ‘tdist’ for calls of
rma.uni() and rma.glmm(); change in R package metafor,
version 1.9-9
- subgroup():
- new measure Rb of between-study heterogeneity implemented
- is.installed.package():
- new check of version number of R package
- use requireNamespace() instead of installed.packages()
- format.p():
- for small p-values, print “p < 0.01” or “p < 0.001” instead of
“p < 0.0001” if digits.pval is 2 or 3, respectively
- new argument ‘zero’ to print “.001” instead of “0.001”, etc
- meta-internal():
- set defaults for arguments ‘smrate’ and ‘layout’
Major changes
New function metarate() to conduct meta-analysis of single
incidence rates
Peters’ test for funnel plot asymmetry implemented for
meta-analysis of single proportions
Meta-analysis of ratio of means added to metacont()
Justification of additional columns in forest plot can be
specified individually for each additional column
Justification of additional columns in forest plot can be
specified individually for each additional column
Calculation of Freeman-Tukey double arcsine transformation and
back transformation slightly changed in meta-analysis of single
proportions
By default, do not print a warning if back transformation for
metaprop() and metarate() objects results in values below 0 or above 1
(only for proportions); note, respective values are set to 0 or
1
User-visible changes
Help page with brief overview of meta package
added
Preferred citation of meta package in
publications changed; see output of command ‘citation(“meta”)’
forest.meta(), metagen(), print.meta(), print.summary.meta(),
summary.meta(), trimfill.default(), trimfill.meta(), update.meta():
- new arguments ‘irscale’ and ‘irunit’ for meta-analysis objects
created with metarate()
settings.meta():
- new arguments ‘smrate’ for meta-analysis objects created with
metarate()
funnel.meta(), funnel.default():
- new argument ‘pos.studlab’ to change position of study labels
forest.meta():
- new arguments ‘just.addcols.left’ and ‘just.addcols.right’ to
specify justification of additional columns on left and right side of
forest plot
metacont():
- meta-analysis for ratio of means implemented (argument ‘sm =
“ROM”’)
- new argument ‘backtransf’ for ratio of means (argument ‘sm =
“ROM”’)
metaprop():
- change in Freeman-Tukey double arcsine transformation only visible
in printouts if argument ‘backtransf = FALSE’ or if list elements ‘TE’,
‘TE.fixed’, and ‘TE.random’ (as well as confidence intervals) are
extracted from a metaprop object
print.summary.meta():
- bug fix in subgroup() to print correct results for subgroup analyses
of metaprop objects with argument ‘sm = “PFT”’
print.meta(), print.summary.meta():
- new argument ‘warn.backtransf’ to specify whether a warning should
be printed if backtransformed proportions and rates are below 0 and back
transformed proportions are above 1
Help pages updated:
- forest.meta(), metabias.meta(), metabin(), metacont(), metacor(),
metagen(), metainc(), metainf(), metaprop(), print.meta(),
print.summary.meta(), summary.meta(), trimfill.default(),
trimfill.meta(), update.meta()
Internal changes
New function asin2ir() to back transform arcsine transformed
incidence rates
backtransf(), catmeth(), metacum(), metainf(), subgroup(),
xlab():
- extension to handle meta-analysis objects created with
metarate()
metaprop(), asin2p():
- calculation of Freeman-Tukey double arcsine transformation changed
to get similar estimates as arcsine transformation, i.e. multiply values
by 0.5
subgroup():
- bux fix in calculation of harmonic mean of sample sizes for
metaprop() objects with argument ‘sm = “PFT”’ and event times for
metarate() objects with argument ‘sm = “IRFT”’
Major changes
New features in forest plots:
- printing of columns on left side of forest plot can be omitted
- total person time can be printed
- text for fixed effect and random effects model can be omitted from
calculation of width for study labels
- plot type for confidence intervals (square or diamond) can be
specified for each study as well as fixed effect and random effects
estimate
- printing of test for treatment effect in subgroups possible
New function weights.meta() to calculate absolute and percentage
weights in meta-analysis
New argument ‘byseparator’ to define the separator between label
and subgroup levels which is printed in meta-analysis summaries and
forest plots - considered in all R functions dealing with meta-analysis
and subgroups
Argument ‘pscale’ - a scaling factor for printing of single event
probabilities - considered in all R functions for single proportions;
before this update, argument ‘pscale’ was only available in
forest.meta()
User-visible changes
- forest.meta():
- argument ‘ref’ considered for metaprop() objects
- argument ‘leftcols = FALSE’ omits printing of columns on left side
of forest plot
- new argument ‘pooled.times’ to print total person time
- new argument ‘calcwidth.pooled’ to include or exclude text from
pooled estimates to determine width of study labels
- new argument names (old names can still be used at the moment,
however, will result in an informative warning message):
- ‘col.i’ -> ‘col.study’
- ‘col.i.inside.square’ -> ‘col.inside’
- ‘col.diamond.fixed.lines’ -> ‘col.diamond.lines.fixed’
- ‘col.diamond.random.lines’ -> ‘col.diamond.lines.random’
- new arguments:
- ‘type.study’, ‘type.fixed’, ‘type.random’ to use squares or diamonds
to plot treatment effects and confidence intervals
- ‘col.inside.fixed’, ‘col.inside.random’ with information on colour
to print confidence interval inside square
- ‘test.effect.subgroup’, ‘test.effect.subgroup.fixed’,
‘test.effect.subgroup.random’, ‘label.test.effect.subgroup.fixed’,
‘label.test.effect.subgroup.random’, ‘fs.test.effect.subgroup’,
‘ff.test.effect.subgroup’ to print results for test of treatment effect
in subgroups
- bug fix to get correct length for reference line and lines for fixed
effect and random effects estimate if argument ‘test.overall =
TRUE’
- bug fix to consider arguments ‘lab.e.attach.to.col’ and
‘lab.c.attach.to.col’ for metagen() objects
- metabin(), metacont(), metacor(), metagen(), metainc(), metaprop(),
forest.meta(), print.summary.meta(), summary.meta(), update.meta(),
settings.meta():
- new argument ‘byseparator’
- metagen(), metaprop(), print.meta(), print.summary.meta(),
summary.meta(), trimfill.meta(), trimfill.default(), update.meta():
- labbe.metabin(), labbe.default():
- transformed event probabilites can be plotted, e.g., log odds event
probabilities for odds ratio as summary measure
- line for null effect added by default; see arguments ‘nulleffect’,
‘lwd.nulleffect’, ‘col.nulleffect’
- metabin(), metainc(), metaprop():
- use predict.rma() from metafor package to calculate
prediction interval for GLMM method
- print note for GLMM method that continuity correction is only used
to calculate individual study results
- Help pages updated:
- labbe.metabin(), labbe.default(), forest.meta(), metabin(),
metacont(), metacor(), metagen(), metainc(), metaprop(), print.meta(),
print.summary.meta(), summary.meta(), trimfill.meta(),
trimfill.default(), update.meta()
Internal changes
User-visible changes
- metareg(), update.meta():
- bug fix for error if used with metaprop() object and argument
‘method = “GLMM”’
Major changes
Generalised linear mixed models (GLMMs) implemented by internal
call of rma.glmm() from R package metafor by Wolfgang
Viechtbauer
R packages lme4, numDeriv, and
BiasedUrn added to suggested packages which are
required by rma.glmm()
Print layout (especially number of printed digits) slightly
modified which impacts output from print.meta(), print.summary.meta(),
and forest.meta()
New arguments to change number of digits in printouts and forest
plots
User-visible changes
- metabin(), metainc(), metaprop():
- extension for meta-analysis based on GLMM; see argument ‘method’ and
‘model.glmm’ (not used in metaprop())
- new argument ‘…’ to provide additional arguments to rma.glmm()
- some arguments can be used for other meta-analysis methods than
inverse variance method: ‘method.tau’, ‘hakn’, ‘tau.common’, ‘TE.tau,
’tau.preset’
- metabin():
- do not print warning that inverse variance instead of
Mantel-Haenszel method is used for analysis of a single study
- print warning if continuity correction (arguments ‘incr’, ‘allincr’,
‘addincr’, ‘allstudies’) is used with arcsine difference, Peto method,
or GLMM
- check whether R package BiasedUrn is installed for
conditional hypergeometric-normal GLMM (method = “GLMM”, model.glmm =
“CM.EL”)
- forest.meta():
- extension to plot meta-analysis based on GLMM
- argument ‘labels’ can be used instead of argument ‘label’ to change
labels on x-axis
- funnel.meta():
- print default labels on y-axis with capital first letter
- metareg() and update.meta():
- extension for meta-analysis based on GLMM
- print.meta():
- new arguments to control printing: ‘digits.se’, ‘digits.zval’,
‘digits.Q’, ‘digits.tau2’, ‘digits.H’, ‘digits.I2’, ‘digits.prop’,
‘digits.weight’
- argument ‘…’ passed on to internal call of print.summary.meta()
- print.summary.meta():
- new arguments to control printing: ‘digits.zval’, ‘digits.Q’,
‘digits.tau2’, ‘digits.H’, ‘digits.I2’
- print “–” for missing z-value instead of “NA”
- only print confidence interval for H and I2 if lower and upper
limits are not NA
- print Wald-type and Likelihood-Ratio heterogeneity test for
GLMMs
- settings.meta():
- new arguments: ‘model.glmm’, ‘digits’, ‘digits.se’, ‘digits.zval’,
‘digits.Q’, ‘digits.tau2’, ‘digits.H’, ‘digits.I2’, ‘digits.prop’,
‘digits.weight’, ‘digits.pval’, ‘digits.pval.Q’
- check whether R package metafor is installed for
specific values of argument ‘method.tau’
- check whether R packages required for GLMMs are available (if method
= “GLMM”): metafor, lme4,
numDeriv
- Help pages updated: metabin(), metainc(), metaprop(), metareg(),
forest(), print.meta(), print.summary.meta(), settings.meta(),
update.meta()
Internal changes
New function format.NA() to print other text than “NA” for
missing values
metagen():
- only call paulemandel() if heterogeneity statistic Q is larger equal
than number of studies minus 1 (otherwise between-study heterogeneity
tau2 is set equal to 0)
metabin(), metainc(), metaprop(), summary.meta():
- new list elements ‘model.glmm’, ‘.glmm.fixed’, ‘.glmm.random’,
‘version.metafor’
metabin(), summary.meta():
- new list element ‘doublezeros’ for odds ratio or risk ratio as
summary measure
Set defaults for arguments ‘model.glmm’, ‘digits’, ‘digits.se’,
‘digits.zval’, ‘digits.Q’, ‘digits.tau2’, ‘digits.H’, ‘digits.I2’,
‘digits.prop’, ‘digits.weight’, ‘digits.pval’, ‘and
digits.pval.Q’
paulemandel():
- more sensible warning if maximum number of iterations is
reached
- maximum number of iterations increased from 25 to 100
format.p():
catmeth():
- print information for GLMMs
- print information whether studies with double zeros are included in
meta-analysis
is.installed.package():
- new arguments for more flexible error and warning messages: ‘func’,
‘argument’, ‘value’, ‘chksettings’
- metacont():
- bug fix to calculate correct treatment estimates for individual
studies for Glass’s delta
- metaprop():
- print correct error message if number of events is larger than
number of observations
- forest.meta():
- new arguments ‘digits.se’, ‘digits.tau2’, ‘digits.pval’,
‘digits.pval.Q’, ‘digits.Q’, ‘digits.I2’ to control printing of standard
errors, p-values, tau2 and heterogeneity statistics
- new arguments ‘test.overall’ and ‘test.subgroup’ controlling whether
information on test for overall effect and heterogeneity should be
printed
- Internal function paulemandel():
- bug fix to give studies with missing treatment effect and standard
error zero weight in random effects meta-analysis
- do not stop estimation algorithm if estimated tau2 is negative
- settings.meta():
- bug fix for error if used with an unassigned argument
- format.p(), format.tau():
- new argument ‘digits’ to round p-values and tau2 values
- chkchar(), chkclass(), chklength(), chklevel(), chklogical(),
chkmiss(), chknull(), chknumeric(), setchar():
- new argument ‘name’ to change name of checked argument in
printout
- Help page of forest.meta() updated
- metabin(), metainc(), and metaprop():
- allow missing values in numbers of events or patients (corresponding
studies get zero weight in meta-analysis)
- forest.meta():
- print information on test for overall effect (arguments
‘test.overall.fixed’ and ‘test.overall.random’)
- print information on test for subgroup differences in meta-analysis
with subgroups (arguments ‘test.subgroup.fixed’ and
‘test.subgroup.random’)
- new argument ‘layout’ to change layout of forest plot
- argument ‘lab.NA’ considered for all columns in forest plot, e.g.,
numbers of events and patients for metabin()
- new argument ‘lab.NA.effect’ to label NAs in individual treatment
estimates and confidence intervals
- bug fix for error if random effects estimate is missing
- metareg():
- additional arguments implemented (‘hakn’, ‘level.comb’,
‘intercept’)
- argument ‘…’ is no longer ignored but passed on to rma.uni(), e.g.,
to control the iterative estimation process
- bug fix to conduct fixed effect meta-regression (argument
‘method.tau = “FE”’)
- metabin():
- use inverse variance instead of Mantel-Haenszel method if only a
single study has a non-missing treatment estimate or standard error
- settings.meta():
- code added for new arguments in forest.meta() to print information
on tests
- Help pages of metareg() and forest.meta() and link to RevMan webpage
updated
Copyright changed (new names for Institute and Medical
Center)
metacont():
- new argument ‘exact.smd’ to implement exact formulae for Hedges’ g
and Cohen’s d (White and Thomas (2005; Hedges, 1981)
- use formula from Borenstein et al. (2009) to calculate standard
error for Cohen’s d
forest.meta():
- bug fix to appropriately sort additional columns provided in
arguments ‘leftcols’ and ‘rightcols’ if argument ‘sortvar’ is not
missing
- new argument ‘print.I2.ci’ to print confidence intervals for I2
forest.meta(), print.meta, print.summary.meta():
- prediction interval can be printed if random effects estimate is not
shown
settings.meta(), catmeth(), update.meta():
- code added for new argument ‘exact.smd’ in metacont()
ci(), kentau():
- calculate p-values without floating point number representation
problems, e.g., the command ci(9, 1) does not result in a p-value of 0
but 2.257177e-19
Several help pages updated to reflect changes in metacont() and
RevMan 5 reference
- metabin():
- bug fix for error in printing of results for Mantel-Haenszel or Peto
method if any study has zero events in both groups
- metabin():
- bug fix for error if Peto method is used
- argument ‘sm = “ASD”’ for arcsine difference instead of ‘sm = “AS”’
(abbreviations ‘sm = “AS”’ and ‘sm = “A”’ can still be used)
- metabin(), metacont(), metacor(), metagen(), metainc(), and
metaprop():
- weights ‘w.random.w’ are calculated from random effects
meta-analysis ignoring subgroup membership; internal function subgroup()
changed accordingly
- argument ‘tau.common = TRUE’ if argument ‘tau.preset’ is not NULL in
subgroup analyses
- forest.meta():
- bug fix for meta-analyses with subgroups if additional columns were
provided in argument ‘leftcols’ or ‘rightcols’
Major revision
This update has been declared as major revision as R code to conduct
subgroup analyses has been moved from summary.meta() and forest.meta()
to metabin(), metacont(), metacor(), metagen(), metainc(), and
metaprop(). Accordingly, an R object generated with these functions
contains all results from subgroup analyses.
In the case of subgroups, the overall treatment effect in fixed
effect and random effects meta-analysis ignores subgroup membership. See
Borenstein et al. (2011), Introduction to Meta-Analysis, Wiley, Chapter
19, “Obtaining an overall effect in the presence of subgroups, Option
3.
Furthermore, several checks of function arguments have been
implemented in version 4.0-0 of meta.
Details
Function addvar() removed from R package meta as
functionality is provided by forest.meta()
forest.meta():
- new meaning for argument ‘just’ which determines the justification
of all columns but study labels (argument ‘just.studlab’) and columns
added to the forest plot (argument ‘just.addcols’)
- new argument ‘just.addcols’ to change justification of text in
additional columns
- new arguments ‘text.I2’ and ‘text.tau2’
- for metaprop objects, values “n” and “event” handled as standard
columns in argument ‘rightcols’ and ‘leftcols’, i.e. justification is
determined by argument ‘just.cols’
- subgroup results printed with the same polygon height as overall
results, i.e. percentage weight is not considered to determine polygon
height for subgroups
bubble.metareg():
- bug fix for meta-regression without intercept
- bug fix for error in meta-regression using specific effect measure,
e.g. ‘sm = “RR”’, “OR”, or “HR”
New internal R functions:
- subgroup(), hetcalc()
- updateversion()
- bylevs(), byvarname()
- chkchar(), chkclass(), chklength(), chklevel(), chklogical(),
chkmetafor() chkmiss(), chknull(), chknumeric()
- int2num(), npn()
- setchar(), setstudlab()
format.p(), format.tau(), catmeth(), print.summary.meta():
- consider settings for option ‘OutDec’ (character used as decimal
point in output conversions), e.g., options(OutDec = “,”) will print
“1,0” instead of “1.0”
print.meta(), print.summary.meta():
- print ‘p-value’ instead of ‘p.value’
print.summary.meta():
- remove code for R objects created with version 2.0-0 or lower of
meta
Several help pages updated
- forest.meta(), funnel.default(), funnel.meta(), metabin(), metacor,
metacr(), metagen(), metainc(), metaprop(), print.meta(),
print.summary.meta, summary.meta(), trimfill.default(), trimfill.meta():
- new argument ‘backtransf’ indicating whether effect measures should
be back transformed
- print.meta(), print.summary.meta():
- argument ‘logscale’ replaced by ‘backtransf’
- print.summary.meta(), forest.meta():
- print prediction interval for Freeman-Tukey double arcsine
transformation (sm = “PFT”)
- forest.meta():
- consider prediction interval to calculate limits on x-axis if
argument ‘prediction = TRUE’
- bubble.metareg():
- new argument ‘regline’ indicating whether regression line should be
added to plot
- settings.meta():
- new argument ‘print’ to print listing of all settings as function
call without arguments does not print settings any longer
- list with previous settings can be provided as sole input
- New functions:
- backtransf() to control back transformation of effect measures
- is.relative.effect() to check for relative effect measures
- File DESCRIPTION:
- R package grid defined as Imports instead of
Depends
- Help pages updated to reflect changes in version 3.8-0
- forest.meta():
- bug fix to correctly sort lower and upper confidence interval limits
if argument ‘sortvar’ is used (bug was introduced in
meta, version 3.7-0)
- argument ‘sortvar’ works without reference to meta-analysis object,
e.g., command forest(meta1, sortvar = TE) can be used instead of
forest(meta1, sortvar = m1$TE)
- Help page of forest.meta():
- examples using argument ‘sortvar’ added
- metaprop():
- new argument ‘method.ci’ to implement various methods to calculate
confidence intervals for individual studies (default: Clopper-Pearson
method which is also called ‘exact’ binomial method)
- list elements ‘zval.fixed’, ‘pval.fixed’, ‘zval.random’ and
‘pval.random’ set to NA
- New internal functions:
- ciWilsonScore() used in metaprop()
- ciAgrestiCoull() used in metaprop()
- ciSimpleAsymptotic() used in metaprop()
- estimate.missing() used in trimfill.meta() and
trimfill.default()
- metacont():
- new argument ‘pooledvar’ to conduct meta-analysis of mean
differences based on pooled variance for individual studies
- update.meta():
- function can be used to upgrade R objects created with older
versions of meta, i.e. all versions between 0.5 and
3.6-0
- extended to objects of the following classes:
- trimfill()
- metacum()
- metainf()
- new arguments:
- ‘method.ci’ for metaprop() objects
- ‘pooledvar’ for metacont() objects
- ‘left’, ‘ma.fixed’, ‘type’ and ‘n.iter.max’ for trimfill()
objects
- new list element ‘call.object’ with call used to generate
meta-analysis object
- as.data.frame.meta(), baujat.meta(), forest.meta(), funnel.meta(),
labbe.metabin(), metacum(), metainf(), print.meta(), summary.meta,
trimfill.meta():
- call update.meta() to update meta-analysis objects created with
meta, version < 3.7
- metabin(), metacont(), metacor(), metagen(), metainc(), metaprop(),
trimfill.default(), trimfill.meta():
- new list elements ‘lower’, ‘upper’, ‘zval’ and ‘pval’ with
confidence limits, z- and p-values for individual studies
- print.meta(), print.summary.meta():
- print information on method used for confidence intervals of
individual studies
- metacum(), metainf():
- add code for metainc() objects
- new list element ‘call’ with function call
- consider argument ‘pooledvar’ for metacont() objects
- metabin(), metacont(), metacor(), metagen(), metainc(), metaprop():
- study labels will only be converted to characters for factor
variables
- Help pages
- updated to reflect changes in version 3.7-0
- argument ‘tau.preset’ correctly described as the
square-root of the between-study variance
- metabin():
- inverse variance method used instead of Mantel-Haenszel method if
argument ‘tau.common = TRUE’
- metareg():
- tilde sign not necessary in argument ‘formula’ to make this function
more user friendly
- forest.meta():
- print common tau2 for subgroups if argument ‘tau.common = TRUE’ in
meta-analysis object
- metagen():
- arguments ‘n.e’ and ‘n.c’ can be part of the dataset provided in
argument ‘data’
- DerSimonian-Laird method used instead of Paule-Mandel method if
argument ‘tau.common = TRUE’
- metacor(), metainc(), and metaprop():
- store value of arguments ‘title’, ‘complab’, and ‘outclab’ in
meta-analysis object
- Some help pages (slightly) updated
New R function settings.meta() to define and print default
settings for meta-analyses in R package meta
metagen():
- Hartung and Knapp method added; previously rma.uni() from R package
metafor was called for this method
- Paule-Mandel method to estimate between-study variance implemented
using new internal function paulemandel() which is based on
mpaule.default() from R package metRology by S.L.R.
Ellison <s.ellison at lgc.co.uk> (Author of mpaule.default() is S.
Cowen <simon.cowen at lgc.co.uk> with amendments by S.L.R.
Ellison)
metacont():
- studies with missing treatment estimate get zero weight in
meta-analysis
metabin(), metacont(), metacor(), metacr(), metagen(), metainc(),
metaprop():
- default values changed according to settings.meta()
metareg():
- use argument ‘method.tau = “REML”’ if this argument is equal to “PM”
for meta-analysis object
Several help pages updated
- forest.meta():
- bug fix to show correct confidence limits for individual studies if
argument ‘level’ is not equal to the default 0.95. (bug was introduced
in meta, version 3.0-0)
metabin(), metacont(), metacor(), metagen(), metainc(),
metaprop():
- heterogeneity statistics I2 and H added to R object
- column names changed in list element ‘data’; columns starting with a
“.” used internally in update.meta()
- string “byvar” is used as default label for grouping variable if
argument ‘bylab’ is not provided
metareg():
- variable ‘.byvar’ used instead of ‘byvar’ to reflect change in list
element ‘data’
update.meta():
- arguments ‘byvar’ and ‘subset’ fully functional
- variables ‘.TE’, … used internally instead of TE, … to reflect
change in list element ‘data’
trimfill.default(), trimfill.meta():
- heterogeneity statistics I2 and H added to R object
metagen():
- bug fix to correctly calculate weights (list elements ‘w.fixed’ and
‘w.random’) if any standard error is missing or zero for the
Hartung-Knapp method (argument ‘hakn = TRUE’) or the DerSimonian Laird
method is not used (argument ‘method.tau’ not equal to “DL”)
summary.meta():
- subgroup analysis implemented for metainc() objects
forest.meta():
- groups will not be sorted automatically in alphabetical order (new
argument ‘bysort’). Use argument ‘bysort = FALSE’ to get the old
behaviour of forest.meta()
forest.meta(), summary.meta():
- only (re)calculate heterogeneity statistics (Q, tau2, I2) for R
objects generated with older versions of R package
meta
catmeth():
- new argument ‘tau.preset’ to print information if between-study
variance was pre-specified
print.meta(), print.summary.meta():
- argument ‘tau.preset’ used in catmeth()
New internally used functions isquared() and calcH()
Some help pages updated
- forest.meta():
- bug fix for error in meta-analyses with subgroups using any but
metaprop() (bug was introduced in meta, version
3.1-1)
- forest.meta():
- bug fix to show random effects estimate in metaprop() objects with
subgroups using argument ‘sm = “PFT”’
New R function metainc() for meta-analysis of incidence
rates
Continuity correction:
- metabin() and metaprop() do no longer print a warning in case of
studies with a zero cell frequency
- instead information on continuity correction is given under “Details
on meta-analytical method” if a corresponding meta-analysis object is
printed
forest.meta(), funnel.default(), funnel.meta(), print.meta(),
print.summary.meta(), update.meta(), catmeth(), xlab():
- properly handle R objects of class “metainc”
metaprop():
- use correct variable names for ‘event’ and ‘n’ in list element
‘data’ if metaprop() is called without argument ‘data’
metabin():
- inverse variance method (argument ‘sm = “Inverse”’) is used
automatically if argument ‘tau.common = TRUE’
- bug fix for error if argument ‘tau.common = TRUE’ and ‘method =
“MH”’
catmeth():
- print information on continuity correction for objects of class
“metabin”, “metaprop”, and “metainc”
summary.meta():
- fixed effect and random effects estimates and confidence intervals
are only (re)calculated for R objects created with
meta, version < 2 if argument ‘level.comb’ has not
been used
trimfill.meta(), trimfill.default():
- new list elements ‘lower.fixed’, ‘upper.fixed’, ‘zval.fixed’,
‘pval.fixed’, ‘lower.random’, ‘upper.random’, ‘zval.random’,
‘pval.random’ added to trimfill() object (bug was introduced in
meta, version 2.0-0)
New datasets smoking and lungcancer as examples for
metainc()
Major revision
This update has been declared as major revision as the user interface
changed by dropping some arguments: - print.meta(), forest.meta(),
summary.meta(): ‘level’, ‘level.prediction’ - print.meta(),
forest.meta(), metainf(), metacum(): ‘level.comb’ - in forest.meta(),
summary.meta(): ‘byvar’
This functionality is now provided by update.meta().
Details
New function update.meta() to update an existing meta-analysis
object created with metabin(), metacont(), metagen(), metaprop(), or
metacor()
New function cilayout() to change layout of confidence
intervals
Deprecated function plot.meta() removed
metabin(), metacont(), metagen(), metaprop(), metacor():
- code cleaning for new R function update.meta()
metabin(), metacont(), metagen(), metaprop(), metacor(),
summary.meta():
- new list components:
- ‘data’ with original data used in function call
- ‘subset’ with information on subset used in meta-analysis
metareg():
- argument ‘data’ renamed to ‘x’
- first two arguments interchanged (which is now in line with other R
functions from R package meta)
- information on grouping variable (list element ‘byvar’) is utilised
if argument ‘formula’ is missing
- any column from original dataset (list element ‘data’) can be used
in meta-regression
trimfill.meta():
- new defaults for arguments ‘comb.fixed’ and ‘comb.random’ (by
default only random effects estimate calculated)
- arguments ‘sm’ and ‘studlab’ removed
- new list elements (depending on class of meta-analysis object used
in function call):
- ‘event.e’, ‘event.c’, ‘event’ with number of events
- ‘n.e’, ‘n.c’, ‘n’ with number of observations
- ‘mean.e’, ‘mean.c’, ‘sd.e’, ‘sd.c’ with means and standard
deviations
- ‘cor’ with correlation
- ‘class.x’ with class of meta-analysis object used in function
call
trimfill.default():
- only calculate random effects estimate by default
metacr():
- new list elements ‘event.e’, ‘n.e’, ‘event.c’ and ‘n.c’ for Peto O-E
method
metaprop():
- new list element ‘incr.event’
forest.meta():
- bug fix for error if (i) the effect measure is equal to RR, OR, or
HR and (ii) argument ‘label’ is not a logical value
print.summary.meta():
- print “0” instead of “< 0.0001” if between-study heterogeneity is
zero
New function format.tau() to print “0” instead of “< 0.0001”
if tau2 is zero
p.ci():
- new arguments ‘bracket.left’, ‘separator’ and ‘bracket.right’ for
more flexible confidence interval layouts
Several help pages updated
- forest.meta():
- new argument ‘just.studlab’ to change justification of study
labels
- print.meta():
- print correct information on method to calculate approximate
confidence interval for metaprop() with a single study
- trimfill.meta():
- new list elements ‘title’, ‘complab’, ‘outclab’, ‘label.e’,
‘label.c’, ‘label.left’ and ‘label.right’
- metacr():
- new arguments ‘prediction’ and ‘level.predict’ for prediction
interval for a new study
- new argument ‘tau.common’ for common tau2 across subgroups
- new arguments ‘level’ and ‘level.comb’ for confidence interval of
single studies or meta-analysis
- trimfill.meta(), trimfill.default():
- new arguments ‘prediction’ and ‘level.predict’
- forest.meta():
- heterogeneity statistics are only shown if results for fixed effect
or random effects model are plotted
- metagen(), metabin(), metacont(), metaprop(), metacor():
- list elements ‘comb.fixed’, ‘comb.random’, and ‘prediction’ are set
to FALSE for a single study
- print.meta(), print.summary.meta():
- new argument ‘logscale’ to print results for summary measures “RR”,
“OR”, “HR”, or “PLN” on logarithmic scale
- Several help pages updated
- metaprop():
- bug fix for error in forest.meta() (bug was introduced in
meta, version 2.4-0)
- new list elements ‘incr’, ‘allincr’ and ‘addincr’ added (bug was
introduced in meta, version 1.5-0)
- print.meta():
- new arguments ‘prediction’ and ‘level.predict’ to print prediction
interval for a new study
- forest.meta(), print.summary.meta():
- only print warnings in internal call of asin2p() if result for fixed
effect, random effects model or prediction interval are printed
- asin2p():
- new argument ‘warn’ to only print warnings for meta-analysis
results
- Example to generate forest plot added to help pages of metabin(),
metacont(), metacor(), metacr(), metagen(), metaprop()
- metagen(), metabin(), metacont(), metaprop(), metacor():
- new arguments ‘prediction’ and ‘level.predict’ (prediction interval
for a new study)
- new argument ‘tau.common’ (common tau2 across subgroups)
- help pages updated accordingly
- metaprop():
- new default summary measure (sm = “PLOGIT”)
- deprecated argument ‘freeman.tukey’ removed
- summary.meta():
- new arguments ‘prediction’ and ‘level.predict’
- list element ‘tau.common’ from meta-analysis object considered
- correct values for list elements ‘incr’, ‘allincr’, and ‘addincr’
used in calculations for metaprop() objects
- forest.meta():
- new arguments for prediction interval: ‘prediction’,
‘level.predict’, ‘text.predict’, ‘col.predict’, ‘col.predict.lines’,
‘fs.predict’, ‘fs.predict.labels’, ‘ff.predict’,
’ff.predict.labels”
- correct values for list elements ‘incr’, ‘allincr’, and ‘addincr’
used in calculations for metaprop() objects
- information on confidence limit printed for pooled estimates if CI
level is different from CI level for individual studies
- print.summary.meta():
- new argument ‘prediction’
- new list element ‘tau.common’
- catmeth():
- print information on use of common tau2 across subgroups
- forest.meta():
- results for fixed effect and random effects models only
(re)calculated for meta-analysis objects created with
meta, version < 2
- metabin():
- bug fix for error if argument ‘sm = “RR”’ and ‘allstudies = TRUE’ in
meta-analysis with zero events in both groups
- forest.meta():
- new argument ‘lab.NA’ to label missing values (in older version of R
package meta the fixed label ‘NA’ was used)
- arguments ‘colgap.forest.left’ and ‘colgap.forest.right’ considered
instead of only ‘colgap.forest’
- labbe.metabin(), labbe.default():
- bug fix for error if any event probability is equal to NA
- format.p():
- bug fix for error if first argument contains any NAs
- metabin():
- studies with all events in both groups will be included in
meta-analysis by default (in older meta versions these
studies were only included if argument ‘allstudies = TRUE’)
- standard error is positive for studies with all events in both
groups (see Hartung & Knapp (2001), Stat Med, equation (18))
- forest.meta():
- values provided by argument ‘xlim’ will be used as x-axis label for
relative effect measures like risk ratio or odds ratio
- default values for arguments ‘smlab.pos’ and ‘xlab.pos’ changed to
always fall within plotting range
- forest.meta(), metacum(), metainf(), print.meta():
- correct back transformation of Freeman-Tukey Double arcsine
transformation for metacum() and metainf() objects
- asin2p():
- values outside the admissible range are set to the boundary values
[0, 1]; a warning is printed in this casea
- Help pages:
- new argument ‘n.harmonic.mean’ documented for metacum() and
metainf()
- forest.meta():
- bug fix for metacum() or metainf() object with Freeman-Tukey double
arcsine transformation (error message: ‘Error in if (col\(range[1] <= TE.fixed & TE.fixed <=
col\)range[2]) …’)
- forest.meta(), metacum(), metainf(), summary.meta():
- bug fix for error if argument ‘method.tau’ is different from the
default (error message: ’Error in sqrt(W) %*% X : non-conformable
arguments’)
- forest.meta():
- argument ‘byvar’ uses corresponding list element from meta-analysis
object as default
- summary.meta():
- list element ‘k0’ added to trim-and-fill object
- print.summary.meta():
- print number of added studies for trim-and-fill method
- trimfill.meta(), trimfill.default():
- new arguments ‘hakn’ and ‘method.tau’
- metacum(), metainf():
- add class “trimfill” for trim-and-fill objects
- catmeth(), print.meta(), print.summary.meta():
- print information on trim-and-fill method
- metabias.meta(), funnel.meta():
- print error message if used with metacum() or metainf() object
- funnel.meta():
- use different plot symbols (argument ‘pch’) for trimfill()
object
- .onLoad():
- version nummer of meta is printed when library is
loaded
- Help pages:
- arguments ‘hakn’ and ‘method.tau’ documented in trimfill.meta() and
trimfill.default()
- changed default for argument ‘pch’ in funnel.meta() documented
- metaprop():
- variance estimate for log- and logit-transformation is based on
Pettigrew et al. (1986)
- Reference Pettigrew et al. (1986) added to help pages for metabin()
and metaprop()
- metaprop():
- warning is printed if any sample size is smaller than 10 for
Freeman-Tukey double arcsine transformation
- metabin(), metacont(), metacor(), metagen(), metaprop():
- arguments ‘subset’ and ‘byvar’ can be of different length
Major revision
R package meta linked to R package
metafor to provide additional statistical methods,
e.g. meta-regression and other estimates for tau2 (REML, …)
Details
New functions:
- metareg() meta-regression
- metabias() generic method for metabias()
- metabias.default() generic method for metabias()
- metabias.meta() generic method for metabias()
- metabias.rm5() generic method for metabias()
- print.rm5() generic method for rm5-object
- print.summary.rm5() generic method for rm5-object
- summary.rm5() generic method for rm5-object
- catmeth() internal function
- crtitle() internal function
- hypergeometric() internal function
- is.installed.metafor() internal function
- kentau() internal function
- linregcore() internal function
- p2logit() internal function
metabin(), metacont(), metagen():
- new arguments ‘label.left’ and ‘label.right’ to add label on left or
right side of forest plot
metabin(), metacont(), metacor(), metagen(), metaprop():
- new arguments:
- ‘hakn’ (Hartung-Knapp method)
- ‘method.tau’ (estimation method for tau2)
- ‘tau.preset’ (fixed value for tau)
- ‘TE.tau’ (pre-specified treatment effect to estimate tau)
- ‘method.bias’ (test for funnel plot asymmetry used in metabias)
- ‘warn’ (print warning messages)
- new list elements in meta-analysis object:
- ‘se.tau2’ with standard error of tau2
- ‘hakn’ for Hartung-Knapp method
- ‘method.tau’ with information on estimation method for tau2
- ‘tau.preset’ for fixed tau value
- ‘TE.tau’ for pre-specified treatment effect to estimate tau
- ‘method.bias’ for test of funnel plot asymmetry used in
metabias()
- argument ‘warn = FALSE’ suppresses additional warning messages
metabin():
- studies are excluded from meta-analysis if (event.e > n.e |
event.c > n.c) or (n.e <= 0 | n.c <= 0) or (event.e < 0 |
event.c < 0)
metacum(), metainf():
- return NULL if function is used with a single study
- arguments ‘hakn’, ‘method.tau’, ‘tau.preset’, ‘method.bias’,
‘label.left’, ‘label.right’ are considered from meta-analysis
object
- argument ‘level’ removed
metaprop():
- correct variance 1 / (n + 0.5) instead of 1 / (n + 1) is used for
the Freeman-Tukey double arcsine transformation (argument ‘sm =
“PFT”’)
asin2p():
- completely rewritten as back transformation of Freeman-Tukey
transformed proportions was inaccurate
- back transformation of Freeman-Tukey proportions according to Miller
(1978) - see help page of metaprop()
print.metabias():
- print a warning if number of studies is too small to conduct a test
for funnel plot asymmetry
print.summary.meta():
- new argument ‘bylab.nchar’
- print test for subgroup differences for both fixed effect and random
effects model
- invisible(NULL) returned for metacum() and metainf() objects
metacr():
- new arguments:
- ‘sm’ (summary measure)
- ‘method’ (pooling method)
- ‘comb.fixed’ (fixed effect model)
- ‘comb.random’ (random effects model)
- ‘swap.events’ (only for binary data)
- ‘method.tau’ (estimation method for between-study variance)
- ‘hakn’ (Hartung-Knapp adjustment)
- ‘title’ (Title of Cochrane review)
- ‘complab’ (Comparison label)
- ‘outclab’ (Outcome label)
- ‘warn’ (print warning messages)
- removed argument:
- ‘smother’ (summary measure)
- return NULL if no data is available for selection of arguments
‘comp.no’ and ‘outcome.no’
read.rm5():
- changed substantially for reading of RevMan 5.1 files
summary.meta():
- arguments ‘hakn’, ‘method.tau’, ‘tau.preset’, ‘method.bias’ are
considered from meta-analysis object
- argument ‘warn = FALSE’ suppresses additional warning messages
forest.meta():
- treatment effect and 95% confidence interval is printed in the
correct order for objects of class “metaprop” if argument ‘sort’ or
‘order’ is used
- symmetric forest plot by default (argument xlim = “s”)
- new arguments:
- ‘smlab’, ‘smlab.pos’, ‘fs.smlab’, ‘fflab’ for label of summary
measure at top of figure
- ‘label.right’, ‘label.left’, ‘fs.lr’, ‘ff.lr’ for label on right and
left side below the x-axis
- ‘overall.hetstat’ to show heterogeneity information for overall
effect
funnel.default(), funnel.meta():
- arguments ‘col.fixed’ and ‘col.random’ are recognised
metabias.default(), metabias.meta():
- new argument ‘k.min’ to only conduct test for funnel plot asymmetry
if number of studies in meta-analysis is larger or equal to ‘k.min’
- new argument ‘…’ (ignored at the moment)
trimfill.default(), trimfill.meta():
- return ‘invisible(NULL)’ if number of studies is smaller than 3
New datasets: amlodipine, cisapride
File FLEISS93.MTV moved from directory data to directory
extdata
Several help pages updated
Some new help pages added
- forest.meta():
- number of events is printed in the correct order for objects of
class “metaprop” if argument ‘sort’ or ‘order’ is used
- transformed proportions are printed for individual studies in column
‘TE’ if metagen() is used with argument ‘sm’ equal to either “PLN”,
“PLOGIT”, “PAS”, or “PFT”
- as.data.frame.meta():
- function works for meta-analyses with six studies which previously
resulted in an error message ‘Error: evaluation nested too deeply:
infinite recursion …’
- new argument ‘…’
- addvar():
- option stringsAsFactors = FALSE added to internal call of
as.data.frame.meta()
- additional checks for existence of columns ‘by.x’ and ‘by.y’
- additional checks for situations with duplicate entries for columns
‘by.x’ and ‘by.y’ added
- print.meta():
- back transformed proportions are printed for individual studies if
metagen() is used with argument ‘sm’ equal to either “PLN”, “PLOGIT”,
“PAS”, or “PFT”
- Examples in help pages (slightly) updated:
- read.mtv(), read.rm5(), metacr()
- forest.meta():
- for subgroup analyses (i.e. groups defined by argument ‘byvar’),
result for both fixed effect and random effects model are printed (in
older versions of the meta package only results for
either fixed effect or random effects model could be printed)
- new arguments ‘text.fixed.w’ and ‘text.random.w’ to specify label
for estimates within subgroups
- new arguments to change colour of several parts of the plot:
‘col.i.inside.square’, ‘col.square’, ‘col.square.lines’, ‘col.diamond’,
‘col.diamond.fixed’, ‘col.diamond.random’, ‘col.diamond.lines’,
‘col.diamond.fixed.lines’, ‘col.diamond.random.lines’
- new arguments to print information on heterogeneity measures:
‘print.I2’, ‘print.tau2’, ‘print.Q’, ‘print.pval.Q’, ‘hetstat’,
‘hetlab’
- new arguments to change fontsize and fontface of several parts of
the plot: ‘fs.heading’, ‘fs.fixed’, ‘fs.random’, ‘fs.study’,
‘fs.fixed.labels’, ‘fs.random.labels’, ‘fs.study.labels’, ‘fs.hetstat’,
‘fs.axis’, ‘fs.xlab’, ‘ff.heading’, ‘ff.fixed’, ‘ff.random’, ‘ff.study’,
‘ff.fixed.labels’, ‘ff.random.labels’, ‘ff.study.labels’, ‘ff.hetstat’,
‘ff.axis’, ‘ff.xlab’
- new arguments to change gap between columns: ‘colgap.left’,
‘colgap.right=colgap’, ‘colgap.forest’, ‘colgap.forest.left’,
‘colgap.forest.right’
- new argument ‘just’ to change justification of text for additional
columns
- new argument ‘addspace’ to print a blank line at top and bottom of
study results
- argument ‘squaresize’ supersedes argument ‘boxsize’
- new argument ‘new’ indicating whether a new figure should be printed
in an existing graphics window (internally, grid.newpage() is used if
argument ‘new = TRUE’)
- no line is printed for the fixed effect or random effects model if
argument ‘lty.fixed = NULL’ or ‘lty.random = NULL’
- symmetric forest plots can be produced by setting argument ‘xlim =
“s”’
- print.summary.meta():
- for subgroup analyses (i.e. groups defined by argument ‘byvar’),
result for test of heterogeneity printed separately for fixed effect and
random effects model
- metabin(), summary.meta(), print.summary.meta():
- new argument ‘print.CMH’ indicating whether Cochran-Mantel-Haenszel
test for overall effect should be printed (default ‘print.CMH =
FALSE’)
- Help pages updated:
- forest.meta(), metabin(), print.summary.meta(), summary.meta()
Version jump to 1.5-0 as several changes have been
implemented
New functions:
- metacor() meta-analysis of correlations
- forest() generic method for forest plots
- forest.meta() generic method for forest plots
- radial() generic method for radial plots
- radial.default() generic method for radial plots
- radial.meta() generic method for radial plots
- asin2p() internal function
- logit2p() internal function
- xlab() internal function
- z2cor() internal function
forest.meta():
- new arguments ‘pooled.totals’ and ‘pooled.events’ to specify whether
total number of observations and events should be displayed in the
plot
- new argument ‘pscale’ to rescale proportions for objects of class
“metaprop”
- arguments ‘label’ and ‘xlim’ are recognised for other effect
measures than RR, OR, and HR
- arguments ‘rightlabs’ and ‘leftlabs’ accept NAs for columns using
default labels
- significant digits are printed uniformly
- correct sum of percentage weight is printed for random effects model
in forest plots with subgroups
- x limits (min,max) of the plot are defined by the width of
confidence intervals instead of (0,1) for objects of class
“metaprop”
metaprop():
- implementation of additional transformations: log transformation,
logit transformation, raw, i.e. untransformed, proportions
- new argument ‘sm’ to choose summary measure
(i.e. transformation)
- use of argument ‘freeman.tukey’ is deprecated (replaced by argument
‘sm’)
funnel(), funnel.meta(), labbe(), labbe.meta():
trimfill(), trimfill.meta():
summary.meta():
- new list elements ‘H.w’, ‘I2.w’, ‘Q.b.fixed’ and ‘Q.b.random’ for
heterogeneity statistics within subgroups
forest.meta(), metacum(), metainf(), print.meta(),
print.summary.meta(), summary.meta():
- extension for meta-analysis of correlations
plot.meta():
- print warning that function was replaced by forest.meta()
New list element ‘version’ with information on version number of
meta package used to create an object; applies only to
object creating functions, e.g. metabin() and metabias()
Several help pages updated
Use file NEWS instead of ChangeLog to document changes
- summary.meta(), print.summary.meta():
- test for subgroup differences is not calculated and printed for
meta-analyses using the Mantel-Haenszel method for binary data
- metabin(), metacont(), metagen(), metaprop():
- sensible default value is used for argument ‘bylab’ if argument
‘byvar’ is not missing
- forest():
- additional columns are printed in the correct order if argument
‘sort’ or ‘order’ is used
- forest():
- new argument ‘digits’ specifying minimal number of significant
digits for treatment estimate and its confidence interval
- summary.meta():
- results for subgroups (if byvar != NULL) are calculated for both
fixed effect and random effects model:
- list ‘within’ no longer returned by summary.meta()
- lists ‘within.fixed’ and ‘within.random’ returned by
summary.meta()
- variable name of subgroups is printed correctly
- check whether input is an object of class “summary.meta”
- print.summary.meta():
- a warning is printed if both ‘comb.fixed’ and ‘comb.random’ are TRUE
and results for subgroups are supposed to be printed
- Help pages of print.summary.meta() and forest() updated:
- detailed information on printing and plotting of subgroup results if
both comb.fixed and comb.random are TRUE
- Help page of metagen() updated:
- new example with meta-analysis of survival data
- Generic method for trim-and-fill method: trimfill(),
trimfill.default(), trimfill.meta()
L’Abbe plot implemented: labbe(), labbe.default(),
labbe.metabin()
Generic method for funnel plots: funnel(), funnel.default(),
funnel.meta()
funnel.meta(), funnel.default():
- contour-enhanced funnel plots can be produced (new arguments
‘contour.levels’, ‘col.contour’, ‘ref’)
- study labels can be printed on funnel plot (new arguments ‘studlab’,
‘cex.studlab’)
- line type, width and colour can be changed for fixed effect
treatment effect (new arguments ‘lty.fixed’, ‘lwd.fixed’,
‘col.fixed’)
- random effects treatment effect can be plotted (new arguments
‘comb.random’, ‘lty.random’, ‘lwd.random’, ‘col.random’)
- new default values for some arguments:
- ‘pch = 21’ (previously: ‘pch = 1’)
- ‘comb.fixed = x$comb.fixed’
- background colour of points in funnel plot can be changed (new
argument ‘bg’)
forest():
- new default values for arguments ‘lab.e’ and ‘lab.c’:
- x\(label.e and x\)label.c (if these
values are NULL the old default values “Experimental” and “Control” are
used)
metabin(), metacont(), metagen():
- arguments ‘label.e’ and ‘label.c’ added
metacr():
- use arguments ‘label.e’ and ‘label.c’ in calls to metabin(),
metacont(), metagen()