[R-meta] May I ask a question about how to extract specific values from summary(netmeta) output?

Guido Schwarzer @c @end|ng |rom |mb|@un|-|re|burg@de
Mon Sep 30 14:06:12 CEST 2019

Am 27.09.19 um 17:26 schrieb Yan LUO:
> [...]
> I am considering of constructing a "2-dimensional figure" to show the
> results of a network meta-analysis, which means using the x-axis to the
> indicate efficacy ORs for a group of drugs and y-axis to indicate safety
> ORs for the same group of drugs. I selected drug A as conference for both
> efficacy and safety networks. In order to draw the scatter plot, I need to
> extract information from 2 network meta-analyses. The output of
> summary(netmeta)  function (if set ref=drug A) displays all the ORs
> compared to drug A (which I need), however this result is not included in
> the returned list. If it were in the returned list then it would be not
> hard to extract, but since it cannot be found there, how can I extract
> these ORs values from the output? Besides, I am wondering why the displayed
> results are different from the returned list?

Dear Yan,

You do not directly find the odds ratios in an R object created with 
netmeta() as the log odds ratio is stored. Furthermore, instead of only 
containing comparisons with the reference treatment, all network 
estimates are stored in the list elements 'TE.fixed' and 'TE.random'.

These matrices contain the network estimates comparing the treatment in 
the row with the treatment in the column. For a netmeta object net1, for 
example, you can extract the log odds ratio of treatment comparisons 
with the reference treatment using the following commands:
net1$TE.fixed[, net1$reference.group]
net1$TE.random[, net1$reference.group]

Similar matrices are stored in a netmeta object containing the standard 
errors, lower and upper confidence limits as well as z- and p-values 
(see help page of netmeta).

Concerning a scatter plot of an efficacy and safety outcome, I wrote 
some R code (see attached file) which does the job. This will probably 
be the basis for a new plotting function in R package *netmeta* to 
easily create such scatter plots.

> By the way, I have another question about the netgraph function. It seems
> not to be a defaulted selection of drawing a netgraph with the size of
> nodes proportional to the randomized number of patients (sample size), but
> can I manage to do it by some ways?

The number of randomized patients per treatment is stored in list 
element 'n.trts' which can be used to determine the node size in a 
network graph. E.g.,

netgraph(net1, plastic = FALSE, points = TRUE, adj = 0.5,
          cex.points = 15 * sqrt(n.trts / max(n.trts)))

Best wishes, Guido

P.S. Some additional remarks:

- R function netleague() can be used to create a league table for an 
efficacy and safety outcome. E.g., netleague(net.efficacy, net.safety)

- R functions netbind() and forest.netbind() can be used to combine / 
bind results of several networks and to generate a corresponding forest plot

- R functions netposet() and plot.netposet() can be used to generate a 
scatter plot of P-scores for two outcomes (to partially order / rank 
treatments based on two outcomes)

Dr. Guido Schwarzer
Institute of Medical Biometry and Statistics,
Faculty of Medicine and Medical Center - University of Freiburg

Postal address: Stefan-Meier-Str. 26, D-79104 Freiburg

Phone: +49/761/203-6668
Mail: sc using imbi.uni-freiburg.de
Homepage: http://www.imbi.uni-freiburg.de

ORCID iD: https://orcid.org/0000-0001-6214-9087
R-book: https://www.springer.com/gp/book/9783319214153

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://stat.ethz.ch/pipermail/r-sig-meta-analysis/attachments/20190930/6855ef66/attachment.html>

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: plot01.R
URL: <https://stat.ethz.ch/pipermail/r-sig-meta-analysis/attachments/20190930/6855ef66/attachment.ksh>

More information about the R-sig-meta-analysis mailing list