Network Meta-Analysis using Frequentist Methods

A comprehensive set of functions providing frequentist methods for network meta-analysis and supporting Schwarzer et al. (2015) , Chapter 8 "Network Meta-Analysis": - frequentist network meta-analysis following Rücker (2012) ; - net heat plot and design-based decomposition of Cochran's Q according to Krahn et al. (2013) ; - measures characterizing the flow of evidence between two treatments by König et al. (2013) ; - ranking of treatments (frequentist analogue of SUCRA) according to Rücker & Schwarzer (2015) ; - partial order of treatment rankings ('poset') and Hasse diagram for 'poset' (Carlsen & Bruggemann, 2014) ; - split direct and indirect evidence to check consistency (Dias et al., 2010) ; - automated drawing of network graphs described in Rücker & Schwarzer (2016) .


*** netmeta, version 0.9-2, 2016-11-19 ***

** Major changes **

  • R package rgl moved from imported to suggested packages as
    • 3-D network plots are not essential for network meta-analysis
    • installation of netmeta package breaks under Mac OS if XQuartz is not available

** User-visible changes **

  • help page of netgraph() updated (information on rgl package)

** Internal changes **

  • Use chkclass() from meta package to check for class membership

*** netmeta, version 0.9-1, 2016-10-13 ***

** Major changes **

  • 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

** User-visible changes **

  • help page with brief overview of netmeta package added

  • netgraph():

    • new arguments to add number of studies to network graph (number.of.studies, cex.number.of.studies, col.number.of.studies, bg.number.of.studies)
    • plastic look retained for highlighted comparisons
    • new argument D.matrix to provide treatment distances directly
  • netmeta():

    • function can be used with a single pairwise comparison without resulting in an error
  • forest.netmeta():

    • argument sortvar can be equal to Pscore, "Pscore", -Pscore, or "-Pscore" to sort treatments according to ranking generated by netrank()
    • argument leftcols or rightcols can include "Pscore" to add a column with P-Scores to the forest plot
    • new arguments small.values and digits.Pscore for P-Scores
  • print.netmeta():

    • use correct layout for network meta-analysis with a single pairwise comparison
  •, netheat(), netmeasures():

    • print a warning and return NULL for network meta-analysis with a single design
  • netconnection():

    • print sensible error message if argument treat2 is missing or of different length than argument treat 1
  • netdistance():

    • print sensible error message if argument A is not a matrix
  • Help pages updated:,, netgraph(), netheat(), netmeasures()

** Internal changes **

  • New function:

    • shadowtext() to print number of studies
  • nma.ruecker():

    • keep dimension of matrices W and B.matrix for network meta-analysis with a single pairwise comparison
  • nma.krahn():

    • print a warning and return NULL for network meta-analysis with a single design
  • decomp.tau(), tau.within():

    • return NULL for network meta-analysis with a single design

2016-04-26, version 0.9-0

New functions:

  • netdistance (calculate distance matrix; replacement for internal function nodedist)
  • netconnection (Get connectivity information for network)
  • print.netconnection (corresponding print function)

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:

  • check connectivity of network and stop with informative error message if network is not fully connected
  • new list components: 'Cov.fixed' (variance-covariance matrix for fixed effect model) 'Cov.random' (variance-covariance matrix for random effects model)

Function pairwise:

  • extension to long data format (see example on help page)

Function netmeta:

  • new arguments 'dim', 'eig3', and 'zpos' to generate 3-D network plots

Function stress (used internally):

  • extension to generate 3-D network plots
  • use netdistance function instead of nodedist

Function nma.ruecker (used internally):

  • use of netmeta function does not result in an error for networks without heterogeneity / inconsistency, i.e. networks with zero degrees of freedom (e.g. a star-shaped network with only a single study for each comparison; simple example: single comparisons A-B, A-C, A-D)
  • calculate variance-covariance matrix

Function print.netrank:

  • print title of meta-analysis (if available)

Function print.summary.netmeta:

  • print "--" instead of "< 0.0001" in networks without heterogeneity / inconsistency
  • print "0" instead of "< 0.0001" if tau-squared is zero
  • print 'p-value' instead of 'p.value'


  • print 'p-value' instead of 'p.value'

Help page of netmeta function:

  • more details on contrast- and arm-based data format
  • reference to book "Meta-Analysis with R" and Rücker & Schwarzer (2014) added
  • add information that hazard ratio is a possible summary measure
  • change error in description of adjustment in random effects model

Help page of netgraph function:

  • example for 3-D network plot added

Help page of netrank function:

  • reference to Rücker & Schwarzer (2015) updated

Help page of pairwise function:

  • description on use of long data format added
  • more information on additional arguments for meta-analysis functions

New help pages:

  • netconnection, print.netconnection
  • netdistance
  • Wooks2010 dataset

2015-06-26, version 0.8-0

New functions netrank and print.netrank:

  • frequentist method to rank treatments in network

Function netmeta:

  • print less irritating warning if treatment comparisons are resorted (as this is more a note than a warning)

Function print.netmeta:

  • minor change in printout (old: "Data utilised in network meta-analysis ..."; new: "Results ...")

Help pages:

  • new help page for netrank function
  • reference Rücker & Schwarzer (2015) added in help page of netgraph function
  • link to pairwise function added in help page of netmeta function

2015-02-04, version 0.7-0

Version of R package meta must be larger or equal 4.0-0

Title of R package changed.

New function pairwise:

  • transforms data that are given in an arm-based format (e.g. input for WinBUGS is of this format) to contrast-based format that can be read by function netmeta

New datasets:

  • dietaryfat (dataset with incidence rates as outcomes)
  • parkinson (continuous outcomes)
  • smokingcessation (binary outcomes)

Function netmeta:

  • implement a general check for correct number of comparisons for multi-arm studies
  • use setseq function to check and set value of argument 'seq'
  • use setref function to check and set value of argument ''
  • use chklevel function from R package meta to check levels of confidence intervals
  • consider attribute 'sm' from R objects generated with R function pairwise
  • function can be used for a pairwise meta-analysis (bug fix in nma.ruecker function used internally)

Function netgraph:

  • check that matrix 'thickness' (if provided) has same row and column names as argument 'labels'
  • use setseq function to check and set value of argument 'seq'
  • stop with an error message if argument 'seq' or 'labels' is NULL

Function netheat:

  • no net heat plot produced if (i) the number of designs is equal or smaller than 2 or (ii) no between-design heterogeneity exists
  • unintentional warnings omitted

Function forest.netmeta:

  • print a warning that the first treatment is used as reference if the reference group is unspecified instead of producing an error
  • use setseq function to check and set value of argument 'seq'
  • use setref function to check and set value of argument ''

Function print.summary.netmeta:

  • print "." instead of "0" or "1" for diagonal elements of treatment effect and confidence interval matrices
  • print "." instead of "0" or "1" for reference group (if provided)
  • use setref function to check and set value of argument ''
  • use is.relative.effect function from R package meta to check if a relative effect measure is used (argument 'sm')

Function print.netmeta:

  • use setref function to check and set value of argument ''
  • use is.relative.effect function from R package meta to check if a relative effect measure is used (argument 'sm')

Function summary.netmeta:

  • use setref function to check and set value of argument ''

Function decomp.tau and tau.within (used internally):

  • bug fix such that no error is produced in and netheat function for networks without heterogeneity and inconsistency


  • omit printing of information on between-designs Q statistic after detaching of single designs if no between-design heterogeneity exists
  • use format.tau function from R package meta to print "0" instead of "< 0.0001" if tau-squared is zero

New functions (used internally):

  • setseq - check and set argument 'seq' (and argument 'sortvar' in forest.meta function)
  • setref - check and set argument ''
  • chklist - check for a list

New help pages for function pairwise and datasets dietaryfat, parkinson, and smokingcessation.

2014-07-29, version 0.6-0

Function netgraph:

  • complete rewrite of this function (without changing previous default settings substantially)
  • list of major new features:
  • additional layouts beside circular presentation (see argument 'start.layout')
  • implementation of stress majorization algorithm to optimize layout (argument 'iterate')
  • additional methods to determine width of lines connecting treatments (argument 'thickness')
  • highlight multi-arm studies (arguments 'multiarm' and 'col.multiarm')
  • possibility to provide a neighborhood matrix to specify neighborhood differently than using the adjacency matrix, for example content-based (argument 'N.matrix')
  • possibility to provide x- and y-coordinates for network plot (arguments 'xpos' and 'ypos')

Function netmeta:

  • calculate treatment estimates from all direct pairwise treatment comparisons (both fixed effect and random effects model)
  • new list components: 'tau.preset', '', '', '', '', '', '', '', '', '', '', '', ''

Function nma.ruecker (used internally)

  • changed accordingly to reflect changes in netmeta function

Function forest.netmeta:

  • new argument sortvar (default: sort treatment effect estimates according to list component 'seq' of netmeta object)

New functions stress and nodedist (used internally)

  • auxiliary functions for netgraph function

Help pages updated accordingly

2014-06-24, version 0.5-0

Functions nma.krahn, netmeasures, netheat,, and

  • random effects network meta-analysis added

Function netheat:

  • new argument 'random'

Functions nma.krahn,, and netheat:

  • new argument 'tau.preset'


  • correct design-specific decomposition of Q statistic in network meta-analysis with multi-arm studies
  • list component '' renamed to ''
  • list component 'Q.detach' renamed to ''
  • list component 'residuals' renamed to ''
  • new list components: '', '', '', '', 'tau.preset'

New functions tau.within and decomp.tau (used internally)

Help pages updated accordingly

2014-05-27, version 0.4-4

Functions netmeta and nma.ruecker:

  • modified such that the estimated tau-squared in random effects model considers multi-arm studies

Function print.netmeta:

  • information on percentage weight not printed as interpretation is difficult

Dataset Senn2013:

  • use of unpooled standard error for each treatment comparison

2014-04-14, version 0.4-3

Function netmeta:

  • numeric values for arguments 'treat1' and 'treat2' not converted to character values (only factors converted to characters)
  • check whether treatments are different (arguments 'treat1' and 'treat2')

Function print.summary.netmeta:

  • print random effects estimates according to argument 'seq'

Function forest.netmeta:

  • sort treatment effect estimates according to argument 'seq'

Function nma.ruecker (used internally):

  • changed such that all treatment effects are calculated irregardless of treatment order (some treatment effects remained NA depending on order of treatments)

2014-03-31, version 0.4-2

Function netmeasures:

  • bug fix using correct formula to calculate direct evidence proportion (variance instead of standard error)

2014-03-21, version 0.4-1

Function netmeta:

  • Argument 'seq' added (see also R function netgraph)

Function netgraph:

  • new default for argument 'seq'

Help pages updated accordingly

Some internal code cleaning to improve readability of R functions

2014-03-07, version 0.4-0

New functions added:

  • netgraph (network graph)
  • netheat (net heat graph)
  • netmeasures (measures for network meta-analysis)
  • (design-based decomposition of Cochran's Q)
  • (corresponding print function)
  •, format.TE, nma.krahn, nma.ruecker (used internally)

Function netmeta:

  • Check added whether all pairwise comparisons are provided for multi-arm studies

Help pages added for new functions

Help page of function netmeta updated

2013-08-01, version 0.3-1

Functions netmeta and summary.netmeta:

  • new list component n (number of treatments)

Function print.summary.netmeta:

  • modified such that number of treatments is printed
  • modified such that argument '' works as expected for random effects model

2013-07-24, version 0.3-0

First version released on CRAN

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.9-3 by Guido Schwarzer, 11 days ago

Browse source code at

Authors: Gerta Rücker [aut], Guido Schwarzer [aut, cre], Ulrike Krahn [aut], Jochem König [aut]

Documentation:   PDF Manual  

Task views: Meta-Analysis

GPL (>= 2) license

Imports magic, MASS

Depends on meta

Suggests colorspace, rgl, hasseDiagram, grid

See at CRAN