Network meta-regression implemented
Network meta-analysis of studies with correlated treatment arms implemented
Component network meta-analysis:
New R function settings.netmeta() to define and print default settings for network meta-analyses in R package netmeta
By default, no reference group line is displayed in the forest plot (argument 'drop.reference.group')
R functions pairwise() and subset.pairwise() moved from R package netmeta to meta
R function pairwise() can be used with dose-response data
In R function netsplit(), only show results for pairwise comparisons providing both direct and indirect evidence by default
R function netmeta() does not automatically return the R object created with rma.mv() from metafor to calculate the between-study variance for the REML or ML estimator of the between-study variance (argument 'keeprma = FALSE')
New R function netmetareg() to conduct network meta-regression
netmeta():
netmetabin():
discomb():
netmeta(), netmetabin(), discomb(), netcomb(), summary.netmeta(), summary.netcomb(), print.netmeta(), print.netcomb(), print.summary.netmeta(), print.summary.netcomb(), forest.netmeta(), forest.netcomb():
netleague():
forest.netmeta():
print.netmeta(), print.netcomb():
print.netmeta(), print.summary.netmeta():
New function summary.netconnection() to print list of studies in subnetworks
New function print.netdistance() to print distance matrix
Do not print the start-up message concerning older version of R package netmeta for readers of 'Meta-Analysis with R (Use R!)'
netmeta(), netmetabin(), discomb():
netcomplex():
netcomparison():
discomb():
print.netcomparison():
print.netcomb():
New generic function netdistance() to calculate distance matrix
New functions netdistance.netmeta(), netdistance.netcomb(), netdistance.netconnection(), netdistance.pairwise(), and netdistance.default()
New functions netconnection.netmeta(), netconnection.netcomb(), netconnection.pairwise(), and netconnection.default()
New functions netconnection.netmeta(), netconnection.netcomb(), netconnection.pairwise(), and netconnection.default()
R function netleague() can be used with netcomb() or discomb() objects
By default, R function netleague() uses the setting from argument 'x' as the default for argument 'backtransf'
Use backtransf() from R package meta to back-transform results
netcontrib():
netgraph.netmeta(), netgraph.netimpact():
netconnection.pairwise():
pairwise():
nettable():
print.nettable():
print.netsplit(), forest.netsplit():
netconnection.pairwise():
netgraph.netmeta():
print.netcomplex():
Vignette with publication on netmeta in Journal of Statistical Software added (command: vignette("netmeta"))
R package R.rsp added to suggested packages
R functions funnel(), metabias(), radial(), trimfill(), metainf(), metacum(), baujat() and metareg() can be applied to netpairwise objects created with argument 'separate = TRUE', i.e., separate meta-analysis for all pairwise comparisons in a network
Heat plot implemented showing network estimates with confidence intervals
netmeta():
netcontrib():
netpairwise():
print.decomp.design():
print.netmeta():
netmeta(), netposet(), netrank(), forest.netmeta():
funnel.netmeta():
New functions funnel.netpairwise(), metabias.netpairwise(), radial.netpairwise(), trimfill.netpairwise(), metainf.netpairwise() and metacum.netpairwise()
New generic function heatplot() to generate heat plot
New generic function netconnection() to check connectivity
New functions netconnection.pairwise() and netconnection.default()
netgraph.netmeta():
netmetabin():
New internal function setsv() to set value for argument 'small.value'
netcomb():
print.netcomb():
netcomb(), netcomparison(), netcomplex(), summary.netcomb(), summary.netmeta():
summary.netmeta():
summary.netcomb():
Help page for netgraph.netmeta():
New internal function armlab() to generate labels for combinations and components in component network meta-analysis
netcomb():
netgraph.netmeta():
netgraph.netimpact():
netgraph.netconnection():
netgraph.discomb(), netgraph.netimpact():
plot.rankogram():
Use term 'common effects model' instead of 'fixed effects model' in the documentation and argument 'common' instead of 'fixed' to (not) show results for common effects model
New function nettable() to create tables with network, direct and indirect estimates from one or more network meta-analyses
Excel file with league tables can be created directly with netleague()
Nodes in circular network graphs can be rotated
R package writexl added to suggested packages
netcomb():
netmeta():
New function subset.pairwise() to select subset of a pairwise object
netsplit():
netgraph():
netgraph.netconnection():
print.netconnection():
netconnection(), print.netconnection():
hatmatrix():
print.netimpact():
Use DerSimonian-Laird estimator of between-study variance to calculate 'tau2.direct' and 'tau.direct' in netmetabin() as REML method did not converge in some network meta-analyses
New internal function legendabbr() to print legend with abbreviated and full treatment labels
New internal function catch() to catch value for an argument
New internal functions comptrts(), direct.indirect(), mat2dat.split(), mat2dat.table(), nettable_internal(), sidde() and sortprop() for netsplit() and nettable()
New argument 'equal.length' in setseq()
By default, reference group is defined by first treatment in network meta-analysis providing treatment estimate(s) and standard error(s)
Function to calculate pseudoinverse of Laplacian matrix (Rücker, 2012) can be specified
Function invmat() to calculate pseudoinverse made directly accessible (was an internal function)
Only comparisons with a single or multiple treatment(s) can be shown in a 'comparison-adjusted' funnel plot
Comparators in 'comparison-adjusted' funnel plot can be lumped
R package tictoc added to suggested packages
netmeta():
netmeta(), pairwise():
rankogram():
plot.netrank():
print.netcomplex():
netmeta(), netmetabin(), netcomb(), discomb():
funnel.netmeta():
netcontrib(), netsplit():
print.netconnection():
Data set Linde2016:
Internal function contribution.matrix() returns a list instead of a single matrix with contributions
New internal function ranksampling() to conduct the resampling of treatment rankings
print.netsplit(), forest.netsplit():
print.netmeta(), print.netcomb():
Behaviour of print and print.summary functions switched (to be in line with other print and print.summary functions in R)
Annabel Davies [email protected] is a new co-author of R package netmeta
Random walk algorithm implemented to estimate network contributions (Davies et al., 2021)
Calculation of standardised mean differences and corresponding standard errors in pairwise() is based on Crippa & Orsini (2016), equations (4) and (5), providing consistent treatment estimates and standard errors for multi-arm studies
By default, reference group is defined by first treatment in network meta-analysis
Renamed arguments:
New R function hatmatrix() to derive hat matrices
New R function netpairwise() to conduct pairwise meta-analyses for comparisons with direct evidence
New R function netcomplex() to calculate effect of arbitrary complex interventions in component network meta-analysis
New R function netcomparison() to calculate comparison effects of two arbitrary complex interventions in component network meta-analysis
I2 from pairwise comparisons shown in forest plot with direct evidence
In component network meta-analysis, individual component names instead of full treatment names can be abbreviated for complex interventions with more than one component
Do not stop calculations if standard errors of multi-arm studies are inconsistent (instead only check for positive variance estimates of single treatment arms)
Generic functions are not exported
netmeta():
forest.netbind(), forest.netcomb(), forest.netmeta(), forest.netsplit():
netcomb(), discomb():
funnel.netmeta():
New functions hatmatrix() and print.hatmatrix() to derive hat matrices
New functions netpairwise(), forest.netpairwise(), print.netpairwise(), summary.netpairwise() and print.summary.netpairwise() to conduct pairwise meta-analyses for all comparisons with direct evidence
netcontrib():
decomp.design(), print.decomp.design() print.netsplit(), rankogram(), print.rankogram(), plot.rankogram():
rankogram():
plot.rankogram():
print.rankogram():
netrank():
netsplit():
forest.netsplit():
forest.netsplit(), print.netsplit():
pairwise():
netcomb():
discomb(), print.netcomb(), print.summary.netcomb():
New auxiliary function comps() to create unique comparison labels with abbreviated treatment names
netmeta():
netcomb(), discomb():
compsplit():
setref():
nma.additive():
New internal function hatmatrix.aggr() to calculate the aggregated hat matrix
Internal function contribution.matrix() moved to contribution.matrix.tpapak()
New internal functions contribution.matrix.davies()
New internal function compos() to abbreviate component names
New internal function createC.full() to create full C matrix for all k-fold combinations of n components
New internal function charfac()
New wrapper function contribution.matrix()
New argument 'aggr' in createB() to calculate aggregated B matrix
Theodoros Papakonstantinou [email protected] is a new co-author of R package netmeta
Rankograms added
Surface under the cumulative ranking (SUCRA) can be calculated using resampling methods
Method by Papakonstantinou et al. (2018) to estimate the contribution of studies to network meta-analysis implemented
New functions rankogram(), print.rankogram() and plot.rankogram() for rankograms
New functions netcontrib() and print.netcontrib() to calculate network contributions
netrank():
forest.netmeta():
netgraph.netmeta():
netsplit(), forest.netsplit():
discomb(), netcomb():
Restricted maximum likelihood and maximum likelihood estimator for between-study heterogeneity implemented by calling rma.mv() from R package metafor internally
R function pairwise() can be used to generate reduced data set with basic comparisons Rücker & Schwarzer (2014)
R function discomb() can be used with an R object created with pairwise()
netmeta():
netgraph.netmeta():
netmeta():
netconnection():
pairwise():
netgraph.netconnection():
forest.netmeta():
forest.netbind(), forest.netsplit():
forest.netbind():
netmeasures():
netheat():
New internal function invmat() to calculate inverse of matrix
New internal function calcV() to calculate variance-covariance matrix used as input to rma.mv()
nma.ruecker(), multiarm():
netmeta():
netconnection():
netimpact():
nma.krahn():
Treatment labels can be rotated in network graphs
Additional checks whether net heat plot is feasible
Calculate direct evidence proportion and indirect treatment estimates for network meta-analyses created with netmetabin()
Network graph for objects created with netconnection(), netcomb() or discomb()
In summaries, print z- and p-values for network estimates if a reference group is defined
netmetabin():
decomp.design(), netheat():
netmeasures():
netsplit():
print.summary.netmeta():
netrank():
netmeta():
netgraph.netmeta():
plot.netrank():
netbind():
print.netmeta():
print.netconnection():
netsplit():
Rename list elements starting with 'zval.' to 'statistic.'
netcomb():
netmeta(), netcomb():
discomb():
Argument 'single' renamed to 'length' in calls of chkchar(), chkcolor(), chklevel() and chknumeric()
New internal function is.zero() to determine whether a small number is essentially zero (i.e., whether abs(x) < 10 * .Machine$double.eps)
New internal function updateversion() to update older netmeta objects
New internal function designs() to determine study designs
New internal function netheat-internal() with auxiliary functions for netheat()
nma.ruecker(), nma.additive():
Function netimpact() can be used with network meta-analysis objects created with netmetabin()
No warning is printed that treatments within comparisons have been re-sorted in increasing order (which has been rather a note than a warning)
netmetabin():
discomb():
netbind():
as.data.frame.netmeta():
summary.netmeta() exported
netmeta(), discomb():
netmeta(), netcomb(), discomb():
discomb():
forest.netsplit():
Use Markdown for NEWS
In multi-arm studies, negative weights (resulting from slightly inconsistent standard errors) contributing less than 0.1% to the weight of a study are set to 0
Separate consistency tolerances can be specified for treatment estimates and standard errors (which are consistent by design in multi-arm studies, however, can be inconsistent due to rounding of treatment estimates and standard errors)
New default for consistency tolerance: 0.001 instead of 0.0005
Print tau in addition to tau2 in outputs
Print confidence interval for I2 in outputs
netmeta(), discomb():
netmetabin():
print.summary.netmeta(), print.summary.netcomb():
Revision of help page examples to reduce runtime below 5 seconds (CRAN requirement)
multiarm():
chkmultiarm():
nma.ruecker(), nma.additive():
New functions netimpact(), netgraph.netimpact(), print.netimpact() to measure the impact of individual studies to network estimates
New function plot.netrank() to produce image plot of P-scores
Equivalence limits can be added to forest plots
Use roxygen2 for development of R package netmeta
netmeta():
netmetabin():
netgraph():
pairwise():
netgraph() is a generic function and original function netgraph() renamed to netgraph.netmeta()
netgraph.netmeta():
forest.netmeta():
multiarm():
chkmultiarm():
new auxiliary internal functions for forest plots
Orestis Efthimiou [email protected] is a new co-author of R package netmeta
New function netmetabin() for network meta-analysis of binary data using the Mantel-Haenszel method or the non-central hypergeometric distribution
New function funnel.netmeta() for 'comparison-adjusted' funnel plots
New function forest.netcomb() for forest plots of additive network meta-analysis
New functions netbind(), forest.netbind(), and print.netbind() to combine network meta-analysis objects and to generate a forest plot with results of several network meta-analyses
Separate Indirect from Direct Design Evidence (SIDDE) method implemented in netsplit()
All network comparisons can be included in a forest plot
Circular network graphs with minimal number of crossings available
Default setting for levels of confidence intervals can be specified using R function settings.meta(); the default is still 0.95, i.e., 95% confidence intervals are computed
New datasets: Gurusamy2011 and Dong2013
netmeta():
pairwise():
netsplit():
forest.netmeta():
forest.netsplit() and print.netsplit():
forest.netsplit():
netcomb() and discomb():
discomb():
netposet():
netsplit():
forest.netsplit():
netgraph():
netsplit():
netmeta():
netcomb() and discomb():
Internal function nma.additive():
netleague() is a generic function
Help pages:
Main function netmeta():
Function pairwise():
League tables
Network graphs are much more flexible, e.g., color of lines / edges can be specified for each direct pairwise comparison
New function discomb() for disconnected networks sharing at least one common treatment component to apply the additive network model for combinations of treatments
Treatment separator (argument 'sep.trts') can be special character from regular expressions
Between-study variance tau-squared is reported as NA instead of 0 in networks without heterogeneity / inconsistency
netmeta():
netgraph():
pairwise():
netconnection() and print.netconnection():
netleague():
print.netsplit():
print.summary.netcomb():
New auxiliary function netmatrix() to create a matrix with additional information for pairwise comparisons (e.g., risk of bias assessment)
netmeta():
netcomb():
print.summary.netcomb():
new internal functions compmatch() and compsplit() for argument 'sep.trts' taking special character from regular expression into account, e.g., sep.trts = "."
new internal functions bySummary() which is used in netmeta(), netmatrix(), and pairwise()
createC() can be used with netconnection() objects (for disconnected networks)
netcomb.netmeta() has been renamed to netcomb()
netmeta():
Internal function nma.ruecker():
Internal function nma.additive():
Internal function prcombs():
Version of R package meta must be larger or equal 4.9-0
New function to produce forest plots with network, direct, and indirect evidence
New function to estimate additive network meta-analysis for combinations of treatments
New default in function netsplit(): treatment comparisons are selected from upper treatment estimates matrix, i.e., comparisons are "A vs B", "A vs C", and "B vs C" for treatments "A", "B", and "C" instead of "B vs A", etc.
Zero treatment arm variance in multi-arm studies results in a warning instead of an error message
League tables can be exported as CSV or Excel file
New argument 'backtransf' indicating whether estimates should be back-transformed in printouts and plots, e.g., to show results as odds ratios instead of log odds ratios
P-values can be printed in scientific notation
P-values equal to 0 are actually printed as "0" instead of "< 0.0001"
Thousands separator can be used in printouts and forest plots for large numbers
new functions:
print.decomp.design(), print.netmeta(), print.netsplit(), and print.summary.netmeta():
netmeta():
netleague():
netsplit():
netmeasures():
print.netmeta(), print.summary.netmeta():
Dataset Senn2013:
Help pages:
netsplit():
netposet():
netgraph():
chkmultiarm():
new internal function uppertri() to extract elements from the upper triangle of a matrix
new internal function treats() to abbreviate treatment names
new internal function nma.additive() for estimation of additive network meta-analysis models
new internal function createC() to create C matrix used as input to nma.additive()
new internal functions prcombs() and prcomps() for printing of netcomb objects
Internal function p.ci() replaced with formatCI() from R package meta
Internal function format.TE() replaced with formatN() from R package meta
Prediction intervals can be calculated for treatment estimates from a network meta-analysis
In netmeta(), Q statistics for heterogeneity and design inconsistency are calculated according to Krahn et al. (2013); see help page of decomp.design()
In printouts and forest plots, the reference treatment can be considered as treatment of interest or comparator (default), i.e., either comparisons of reference vs other treatments or other treatments vs reference are reported
Tests for heterogeneity and design inconsistency are shown in printouts
A biplot can be generated to show partial ordering of treatment rankings for more than two outcomes
Additional checks implemented for multi-arm studies:
netmeta():
netmeta(), forest.netmeta(), print.netmeta(), print.summary.netmeta(), and summary.netmeta():
print.netmeta(), print.summary.netmeta(), and summary.netmeta():
print.summary.netmeta():
summary.netmeta():
plot.netposet():
decomp.design() and netmeasures():
New internal function upgradenetmeta() to add missing list elements to older netmeta objects
R function ci() from R package meta added to NAMESPACE
chkmultiarm():
New function netleague() to print league table with network meta-analysis results
pairwise():
forest.netmeta():
netmeta():
In decomp.design(), by default, only print designs contributing to design-specific decomposition of within-designs Q statistic
Input to netdistance() can be either a netmeta object or a matrix
forest.netmeta():
print.decomp.design() and netheat():
print.summary.netmeta():
pairwise():
plot.netposet():
print.netsplit():
netdistance():
Help pages:
netmeta():
summary.netmeta():
netsplit():
netconnection():
Internal function decomp.tau():
New internal function createB() to calculate edge-vertex incidence matrix
netmeta(), netconnection(), multiarm(), and chkmultiarm():
print.summary.netmeta(), nma.ruecker(), and decomp.tau():
netsplit() used wrong comparison labels if argument 'reference.group' was used in netmeta()
netmeasures() ignores value of argument 'reference.group' in netmeta object
Calculate indirect treatment estimates based on direct evidence proportion
Ranking of treatments based on fixed effect model added to netrank()
New function netsplit() to split direct and indirect evidence
New functions netposet(), print.netposet(), and plot.netposet() to calculate, print and plot partial ordering of rankings
New function hasse() to draw Hasse diagram of partially ordered treatment rankings
netmeta():
Import ginv() from R package MASS (for consistency checks)
Suggested packages added (for Hasse diagram): hasseDiagram and grid
Bug fixes:
New arguments random and tau.preset in netmeasures()
New functions netsplit() and print.netsplit()
Consider ordering of treatments in netrank() which is defined by argument seq in netmeta()
For multi-arm studies, calculate pooled standard deviation in pairwise() if means and standard deviations are provided and summary measure is equal to "SMD"
netmeta():
nma.ruecker():
nma.krahn():
pairwise():
chkmultiarm(): new internal function to check consistency of treatment effects and variances in multi-arm studies; calls ginv() from MASS library
new internal function lowertri() to extract elements from the lower triangle of a matrix
Number of studies can be added to network graph
Distance matrix can be provided directly to generate network graph
shadowtext() from TeachingDemos package by Greg Snow added to netmeta package
P-scores can be printed in forest plot
help page with brief overview of netmeta package added
netgraph():
netmeta():
forest.netmeta():
print.netmeta():
decomp.design(), netheat(), netmeasures():
netconnection():
netdistance():
Help pages updated: decomp.design(), print.decomp.design(), netgraph(), netheat(), netmeasures()
New function:
nma.ruecker():
nma.krahn():
decomp.tau(), tau.within():
New functions:
Internal function nodedist removed (replaced by netdistance function)
Import functions from R package rgl (for 3-D plots)
New dataset Woods2010 (use long format in pairwise function)
Function netmeta:
Function pairwise:
Function netmeta:
Function stress (used internally):
Function nma.ruecker (used internally):
Function print.netrank:
Function print.summary.netmeta:
Function print.decomp.design:
Help page of netmeta function:
Help page of netgraph function:
Help page of netrank function:
Help page of pairwise function:
New help pages:
New functions netrank and print.netrank:
Function netmeta:
Function print.netmeta:
Help pages:
Version of R package meta must be larger or equal 4.0-0
Title of R package changed
New function pairwise:
New datasets:
Function netmeta:
Function netgraph:
Function netheat:
Function forest.netmeta:
Function print.summary.netmeta:
Function print.netmeta:
Function summary.netmeta:
Function decomp.tau and tau.within (used internally):
Function print.decomp.design:
New functions (used internally):
New help pages for function pairwise and datasets dietaryfat, parkinson, and smokingcessation.
Function netgraph:
Function netmeta:
Function nma.ruecker (used internally)
Function forest.netmeta:
New functions stress and nodedist (used internally)
Help pages updated accordingly
Functions nma.krahn, netmeasures, netheat, decomp.design, and print.decomp.design:
Function netheat:
Functions nma.krahn, decomp.design, and netheat:
Function decomp.design:
New functions tau.within and decomp.tau (used internally)
Help pages updated accordingly
Functions netmeta and nma.ruecker:
Function print.netmeta:
Dataset Senn2013:
Function netmeta:
Function print.summary.netmeta:
Function forest.netmeta:
Function nma.ruecker (used internally):
Function netmeta:
Function netgraph:
Help pages updated accordingly
Some internal code cleaning to improve readability of R functions
New functions added:
Function netmeta:
Help pages added for new functions
Help page of function netmeta updated
Functions netmeta and summary.netmeta:
Function print.summary.netmeta: