News
*** netmeta, version 0.97, 20171206 ***
** Major changes **

Version of R package meta must be larger or equal 4.90

New function to produce forest plots with network, direct, and
indirect evidence

New function to estimate additive network metaanalysis 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 multiarm 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
backtransformed in printouts and plots, e.g., to show results as
odds ratios instead of log odds ratios

Pvalues can be printed in scientific notation

Pvalues 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
** Uservisible changes **

new functions:
 forest.netsplit() to produce forest plots with direct and
indirect evidence
 print.netleague() to print league table
 treats() to create uniquely abbreviated treatment names
 netcomb() and netcomb.netmeta() to estimate additive network
metaanalysis models for combinations of treatments
 summary.netcomb(), print.netcomb(), and print.summary.netcomb()
to print (summaries of) netcomb objects

print.decomp.design(), print.netmeta(), print.netsplit(), and
print.summary.netmeta():
 new argument 'big.mark' to specify character printed as
thousands separator, e.g., big.mark = "," will result in
printing of 1,000 for the number 1000
 new argument 'scientific.pval' to print pvalues in scientific
notation, e.g., 1.2345e01 instead of 0.12345

netmeta():
 new argument 'backtransf' (see above)
 new argument 'nchar.trts' to abbreviate treatment names in
printouts

netleague():
 function does not print league table, but only generates it
(necessary for export of league table)
 new arguments 'bracket' and 'separator' to define layout of
confidence intervals (see R function cilayout() from R package
meta)

netsplit():
 new argument 'upper' to specify whether lower or upper triangle
of treatment estimate matrix should be used to build comparisons
 column with comparisons added to data frames with network, direct,
and indirect estimates
 additional new arguments (see help file):
'reference.group', 'baseline.reference', 'sep.trts', 'quote'

netmeasures():
 do not round results to four digits

print.netmeta(), print.summary.netmeta():
 new arguments 'backtransf' and 'nchar.trts' (see above)
 argument 'logscale' removed (replaced by argument 'backtransf')

Dataset Senn2013:
 new columns 'treat1.long' and 'treat2.long' with full treatment
names added

Help pages:
 new help pages for forest.netsplit(), print.netleague(), and
treats()
 updated help pages for netposet() and netsplit()
** Bug fixes **

netsplit():
 order of treatments in printouts corresponds to treatment
comparison, e.g., "A:B" means that treatment "A" was compared
with treatment "B" (and not the other way around).
Side note, not sure whether this is a bug or a feature as "A:B"
noted the design "comparison A and B" so far.

netposet():
 function works with a ranking matrix that contains missing
elements, i.e., rankings that do not include all treatments

netgraph():
 areas for multiarm studies are printed at the correct locations
if argument 'start.layout' is not equal to "circle" and argument
'seq' defines a specific treatment order (this bug was
introduced in netmeta, version 0.70)
** Internal changes **

chkmultiarm():
 warning for zero treatment arm variance instead of an error

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 metaanalysis 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
*** netmeta, version 0.96, 20170809 ***
** Major changes **

Prediction intervals can be calculated for treatment estimates
from a network metaanalysis

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 multiarm studies:
 negative or zero treatment arm variances
 duplicate treatment comparisons or incomplete sets of
treatment comparisons within a study
** Uservisible changes **

netmeta():
 new arguments 'prediction' and 'level.predict' to calculate
prediction intervals
 list elements 'Q.heterogeneity' and 'Q.inconsistency' based on
Krahn et al. (2013)
 new list elements 'prediction', 'lower.predict',
'upper.predict', 'df.Q.heterogeneity',
'pval.Q.heterogeneity','df.Q.inconsistency', and
'pval.Q.inconsistency'
 list element 'df' renamed to 'df.Q'
 stop with an informative error message if (i) any treatment arm
variance derived from the treatment comparison variances is
negative or zero, or (ii) in case of duplicate comparisons or an
incomplete set of treatment comparisons within a study
 argument 'details.tol.multiarm' renamed to 'details.chkmultiarm'

netmeta(), forest.netmeta(), print.netmeta(),
print.summary.netmeta(), and summary.netmeta():
 new argument 'baseline.reference' to print results for
comparisons between reference and other treatments, or vice versa

print.netmeta(), print.summary.netmeta(), and summary.netmeta():
 new argument 'prediction' to print prediction intervals

print.summary.netmeta():
 print information on tests for overall heterogeneity and
inconsistency

summary.netmeta():
 arguments 'level' and 'level.comb' removed from R function
(i.e., one has to rerun the netmeta() command for confidence
intervals with other coverage levels)

plot.netposet():
 new argument 'plottype' to choose between scatter plot or biplot
 new arguments to modify layout ('cex.text', 'col.text', pch,
cex.points, col.points)

decomp.design() and netmeasures():
 new argument 'warn' to suppress printing of warnings
** Internal changes **
*** netmeta, version 0.95, 20170531 ***
** Major changes **

New function netleague() to print league table with network
metaanalysis results

pairwise():
 zero events for binary outcomes or incidence rates are handled
correctly in multiarm studies by adding an increment to all
treatment arms (in older versions of netmeta inconsistent
treatment effects for multiarm studies were possible as
increments were considered in individual comparisons instead of
all comparisons for a multiarm study)
 print warning and information on treatment comparisons with
missing treatment estimate or standard error

forest.netmeta():
 reference group can be omitted from forest plot
 treatments can be sorted by treatment estimate (TE), standard
error (seTE), number of studies in direct comparison (k), and
proportion of direct information (prop.direct)

netmeta():
 additional checks for correct number of comparisons in multiarm
studies and more informative error message for uncorrect number
of comparisons in multiarm studies due to missing treatment
effects or standard errors in single comparisons
 separator used in comparison names to concatenate treatment
labels can be specified by user (default: ":")

In decomp.design(), by default, only print designs contributing to
designspecific decomposition of withindesigns Q statistic

Input to netdistance() can be either a netmeta object or a matrix
** Uservisible changes **
** Internal changes **

netmeta():
 new list element 'd' with number of designs
 new list element 'B.matrix' with the edgevertex incidence
matrix

summary.netmeta():
 new list element 'd' with number of designs
 new list element 'tau.preset'

netsplit():
 new list element 'k' with number of studies providing direct
evidence

netconnection():
 argument checks added
 better code documentation

Internal function decomp.tau():
 detach all designs (including protuding edges)

New internal function createB() to calculate edgevertex incidence
matrix

netmeta(), netconnection(), multiarm(), and chkmultiarm():
 use internal function createB() instead of dedicated R code

print.summary.netmeta(), nma.ruecker(), and decomp.tau():
 use command pchisq(..., lower.tail = FALSE) instead of
1  pchisq(...)
*** netmeta, version 0.94, 20170407 ***
** Bug fix release **
*** netmeta, version 0.93, 20170312 ***
** Major changes **

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():
 can be used with R objects created with pairwise()
 checks for consistency of treatment effects and variances in
multiarm studies

Import ginv() from R package MASS (for consistency checks)

Suggested packages added (for Hasse diagram):

Bug fixes:
 netmeta() calculates correct direct evidence estimates under
random effects model (list components 'TE.direct.random',
'seTE.direct.random', ..., 'pval.direct.random'); so far results
from fixed effect model have been used
 netmeta() excludes a treatment from list component 'seq' if all
comparisons containing the respecitve treatment are excluded due to
missing values in treatment effect or standard error
 netmeasures() does not result in an error if no or only one
study with two treatments is available
** Uservisible changes **

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 multiarm studoes, calculate pooled standard deviation in
pairwise() if means and standard deviations are provided and
summary measure is equal to "SMD"
** Internal changes **

netmeta():
 new list element 'k.direct' with number of studies in
metaanalyses with direct evidence

nma.ruecker():
 bug fix such that estimates from random effects model are used
for direct treatment estimates if argument 'tau.direct' is
larger than zero

nma.krahn():
 bug fix such that use of function does not result in an error if
either no or only one study with two treatments is available

pairwise():
 data.frame commands use argument stringsAsFactors = FALSE

chkmultiarm():
new internal function to check consistency of treatment effects
and variances in multiarm studies; calls ginv() from MASS library

new internal function lowertri() to extract elements from the
lower triangle of a matrix
*** netmeta, version 0.92, 20161119 ***
** Major changes **
 R package rgl moved from imported to suggested packages as
 3D network plots are not essential for network metaanalysis
 installation of netmeta package breaks under Mac OS if XQuartz
is not available
** Uservisible 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.91, 20161013 ***
** 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

Pscores can be printed in forest plot
** Uservisible 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 PScores to the forest plot
 new arguments small.values and digits.Pscore for PScores

print.netmeta():
 use correct layout for network metaanalysis with a single
pairwise comparison

decomp.design(), netheat(), netmeasures():
 print a warning and return NULL for network metaanalysis 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:
decomp.design(), print.decomp.design(),
netgraph(), netheat(), netmeasures()
** Internal changes **
20160426, version 0.90
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 3D 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' (variancecovariance matrix for fixed effect model)
'Cov.random' (variancecovariance 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 3D network
plots
Function stress (used internally):
 extension to generate 3D 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 starshaped network with only a single
study for each comparison; simple example: single comparisons AB,
AC, AD)
 calculate variancecovariance matrix
Function print.netrank:
 print title of metaanalysis (if available)
Function print.summary.netmeta:
 print "" instead of "< 0.0001" in networks without heterogeneity
/ inconsistency
 print "0" instead of "< 0.0001" if tausquared is zero
 print 'pvalue' instead of 'p.value'
Function print.decomp.design:
 print 'pvalue' instead of 'p.value'
Help page of netmeta function:
 more details on contrast and armbased data format
 reference to book "MetaAnalysis 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 3D 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 metaanalysis functions
New help pages:
 netconnection, print.netconnection
 netdistance
 Wooks2010 dataset
20150626, version 0.80
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
metaanalysis ..."; 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
20150204, version 0.70
Version of R package meta must be larger or equal 4.00
Title of R package changed.
New function pairwise:
 transforms data that are given in an armbased format (e.g. input
for WinBUGS is of this format) to contrastbased 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
multiarm studies
 use setseq function to check and set value of argument 'seq'
 use setref function to check and set value of argument
'reference.group'
 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 metaanalysis (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 betweendesign 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
'reference.group'
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
'reference.group'
 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
'reference.group'
 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
'reference.group'
Function decomp.tau and tau.within (used internally):
 bug fix such that no error is produced in decomp.design and netheat
function for networks without heterogeneity and inconsistency
Function print.decomp.design:
 omit printing of information on betweendesigns Q statistic after
detaching of single designs if no betweendesign heterogeneity
exists
 use format.tau function from R package meta to print "0" instead of
"< 0.0001" if tausquared is zero
New functions (used internally):
 setseq  check and set argument 'seq' (and argument 'sortvar' in
forest.meta function)
 setref  check and set argument 'reference.group'
 chklist  check for a list
New help pages for function pairwise and datasets dietaryfat,
parkinson, and smokingcessation.
20140729, version 0.60
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 multiarm studies (arguments 'multiarm' and
'col.multiarm')
 possibility to provide a neighborhood matrix to specify
neighborhood differently than using the adjacency matrix, for
example contentbased (argument 'N.matrix')
 possibility to provide x and ycoordinates 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', 'TE.direct.fixed', 'seTE.direct.fixed',
'lower.direct.fixed', 'upper.direct.fixed', 'zval.direct.fixed',
'pval.direct.fixed', 'TE.direct.random', 'seTE.direct.random',
'lower.direct.random', 'upper.direct.random', 'zval.direct.random',
'pval.direct.random'
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
20140624, version 0.50
Functions nma.krahn, netmeasures, netheat, decomp.design, and
print.decomp.design:
 random effects network metaanalysis added
Function netheat:
Functions nma.krahn, decomp.design, and netheat:
 new argument 'tau.preset'
Function decomp.design:
 correct designspecific decomposition of Q statistic in network
metaanalysis with multiarm studies
 list component 'Q.design' renamed to 'Q.het.design'
 list component 'Q.detach' renamed to 'Q.inc.detach'
 list component 'residuals' renamed to 'residuals.inc.detach'
 new list components:
'Q.inc.random', 'Q.inc.random.preset',
'Q.inc.design.random.preset', 'residuals.inc.detach.random.preset',
'tau.preset'
New functions tau.within and decomp.tau (used internally)
Help pages updated accordingly
20140527, version 0.44
Functions netmeta and nma.ruecker:
 modified such that the estimated tausquared in random effects model
considers multiarm 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
20140414, version 0.43
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)
20140331, version 0.42
Function netmeasures:
 bug fix using correct formula to calculate direct evidence
proportion (variance instead of standard error)
20140321, version 0.41
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
20140307, version 0.40
New functions added:
 netgraph (network graph)
 netheat (net heat graph)
 netmeasures (measures for network metaanalysis)
 decomp.design (designbased decomposition of Cochran's Q)
 print.decomp.design (corresponding print function)
 p.ci, format.TE, nma.krahn, nma.ruecker (used internally)
Function netmeta:
 Check added whether all pairwise comparisons are provided for
multiarm studies
Help pages added for new functions
Help page of function netmeta updated
20130801, version 0.31
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 'reference.group' works as expected for
random effects model
20130724, version 0.30
First version released on CRAN