| Title: | Data Sets and Code for "Meta-Analysis with R" |
|---|---|
| Description: | Data sets and code supporting the second edition of "Meta-Analysis with R"; first edition: Schwarzer, Carpenter, and Rücker (2015) <DOI:10.1007/978-3-319-21416-0>. |
| Authors: | Guido Schwarzer [cre, aut]
|
| Maintainer: | Guido Schwarzer <[email protected]> |
| License: | GPL (>= 2) |
| Version: | 0.3-0 |
| Built: | 2026-05-11 19:00:21 UTC |
| Source: | https://github.com/guido-s/metabook |
Data sets and code supporting the second edition of "Meta-Analysis with R" by Schwarzer, Carpenter, and Rücker.
Guido Schwarzer [email protected]
Balduzzi S, Rücker G, Schwarzer G (2019): How to perform a meta-analysis with R: a practical tutorial. Evidence-Based Mental Health, 22, 153–160
Schwarzer G, Carpenter JR and Rücker G (2015): Meta-Analysis with R (Use-R!). Springer International Publishing, Switzerland
Useful links:
Results from 39 trials examining pharmacologic treatments for chronic obstructive pulmonary disease (COPD).
Baker2009Baker2009
The data frame contains the following columns:
| study | character |
study label |
| year | numeric |
year of publication |
| id | numeric |
study ID |
| treatment | character |
treatment |
| exac | numeric |
number of individuals with one or more COPD exacerbations |
| total | numeric |
number of individuals |
This data set comes from a systematic review of randomized controlled trials on pharmacologic treatments for chronic obstructive pulmonary disease (COPD) (Baker et al., 2009).
The primary outcome, occurrence of one or more episodes of COPD exacerbation, is binary (yes / no). For this outcome, five drug treatments (fluticasone, budesonide, salmeterol, formoterol, tiotropium) and two combinations (fluticasone + salmeterol, budesonide + formoterol) were compared to placebo. The authors considered the two combinations as separate treatments instead of evaluating the individual components.
medicine, pulmonology, odds ratios, network meta-analysis, component network meta-analysis
Guido Schwarzer, [email protected]
Baker WL, Baker EL, Coleman CI (2009): Pharmacologic treatments for chronic obstructive pulmonary disease: A mixed-treatment comparison meta-analysis. Pharmacotherapy: The Journal of Human Pharmacology and Drug Therapy, 29(8), 891–905. doi:10.1592/phco.29.8.891
if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print odds ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Transform data from long arm-based format to contrast-based # format. Argument 'sm' has to be used for odds ratio as summary # measure; by default the risk ratio is used in the metabin function # called internally. pw <- pairwise(treatment, exac, total, studlab = paste(study, year), data = Baker2009, sm = "OR") # Conduct random effects network meta-analysis (NMA) # with placebo as reference nma <- netmeta(pw, common = FALSE, ref = "plac") # Show network graph netgraph(nma, seq = "optimal", start = "prcomp", labels = gsub("+", " +\n", trts, fixed = TRUE), plastic = TRUE, thickness = "se.common", number = TRUE, points = TRUE, cex.points = 5, col.points = "red", offset = 0.025) # Print and plot results for network meta-analysis nma forest(nma) # Conduct component network meta-analysis (CNMA) cnma <- netcomb(nma) cnma # Compare results of NMA and additive CNMA nb <- netbind(nma, cnma, name = c("Standard NMA", "Additive CNMA")) forest(nb) # Use previous settings settings.meta(oldset) }if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print odds ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Transform data from long arm-based format to contrast-based # format. Argument 'sm' has to be used for odds ratio as summary # measure; by default the risk ratio is used in the metabin function # called internally. pw <- pairwise(treatment, exac, total, studlab = paste(study, year), data = Baker2009, sm = "OR") # Conduct random effects network meta-analysis (NMA) # with placebo as reference nma <- netmeta(pw, common = FALSE, ref = "plac") # Show network graph netgraph(nma, seq = "optimal", start = "prcomp", labels = gsub("+", " +\n", trts, fixed = TRUE), plastic = TRUE, thickness = "se.common", number = TRUE, points = TRUE, cex.points = 5, col.points = "red", offset = 0.025) # Print and plot results for network meta-analysis nma forest(nma) # Conduct component network meta-analysis (CNMA) cnma <- netcomb(nma) cnma # Compare results of NMA and additive CNMA nb <- netbind(nma, cnma, name = c("Standard NMA", "Additive CNMA")) forest(nb) # Use previous settings settings.meta(oldset) }
Results from ten trials reporting the physicians' judgement on the overall efficacy of ketotifen for long-term control of asthma and wheeze in children.
Bassler2004Bassler2004
The data frame contains the following columns:
| study | character |
study label |
| Ee | integer |
number of children with treament success (ketotifen group) |
| Ne | integer |
number of children (ketotifen group) |
| Ec | integer |
number of children with treament success (control group) |
| Nc | integer |
number of children (control group) |
| blind | character |
blinding of clinicians |
Results from ten trials reporting the physicians' judgement on the overall efficacy of Ketotifen for long-term control of asthma and wheeze in children. A prespecified subgroup analysis was conducted to evaluate whether the treatment effect is different in trials with adequate blinding compared to trials with inadequate / unclear blinding.
This data set is used as an example in Schwarzer et al. (2015).
risk ratios, medicine, subgroup analysis
Guido Schwarzer, [email protected]
Bassler D, Mitra AAD, Ducharme FM, Forster J, Schwarzer G (2004): Ketotifen alone or as additional medication for long-term control of asthma and wheeze in children. Cochrane Database of Systematic Reviews, 1, CD001384. doi:10.1002/14651858.CD001384.pub2
Schwarzer G, Carpenter JR and Rücker G (2015): Meta-Analysis with R (Use-R!). Springer International Publishing, Switzerland
if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use DerSimonian-Laird estimator (which was the default in meta in the year 2015). # Furthermore, print meta-analysis results with two digits. oldset <- settings.meta(method.tau = "DL", digits = 2) # Calculate experimental and control event rates with(Bassler2004, summary(Ee / Ne)) with(Bassler2004, summary(Ec / Nc)) # Conduct meta-analysis using the inverse variance method mb3 <- metabin(Ee, Ne, Ec, Nc, method = "I", data = Bassler2004, studlab = study) mb3 # Conduct subgroup analysis comparing trials with adequate blinding # to trials with inadequate or unclear blinding mb3s <- update(mb3, subgroup = blind, print.subgroup.name = FALSE) mb3s # Conduct subgroup analysis assuming common between-study variance in subgroups mb3s.c <- update(mb3s, tau.common = TRUE) mb3s.c # Use previous settings settings.meta(oldset) }if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use DerSimonian-Laird estimator (which was the default in meta in the year 2015). # Furthermore, print meta-analysis results with two digits. oldset <- settings.meta(method.tau = "DL", digits = 2) # Calculate experimental and control event rates with(Bassler2004, summary(Ee / Ne)) with(Bassler2004, summary(Ec / Nc)) # Conduct meta-analysis using the inverse variance method mb3 <- metabin(Ee, Ne, Ec, Nc, method = "I", data = Bassler2004, studlab = study) mb3 # Conduct subgroup analysis comparing trials with adequate blinding # to trials with inadequate or unclear blinding mb3s <- update(mb3, subgroup = blind, print.subgroup.name = FALSE) mb3s # Conduct subgroup analysis assuming common between-study variance in subgroups mb3s.c <- update(mb3s, tau.common = TRUE) mb3s.c # Use previous settings settings.meta(oldset) }
Results from 21 cross-over studies evaluating the effect of potassium supplementation to reduce diastolic blood pressure.
Curtin2002Curtin2002
The data frame contains the following columns:
| author | character |
first author |
| year | character |
year of publication |
| N | integer |
total sample size |
| mean | numeric |
mean difference in diastolic blood pressure |
| SE | numeric |
standard error |
| corr | numeric |
within-patient correlation |
Results from 21 cross-over studies evaluating the effect of potassium supplementation to reduce diastolic blood pressure (Curtin et al., 2002, Table II).
This data set is used as an example in Schwarzer et al. (2015), Chapter 2.
mean differences
Guido Schwarzer, [email protected]
Curtin F, Altman DG, Elbourne D (2002): Meta-analysis combining parallel and cross-over clinical trials. I: Continuous outcomes. Statistics in Medicine, 21(15), 2131–2144. doi:10.1002/sim.1205
Schwarzer G, Carpenter JR and Rücker G (2015): Meta-Analysis with R (Use-R!). Springer International Publishing, Switzerland
if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use DerSimonian-Laird estimator (which was the default in meta in the year 2015). # Furthermore, print meta-analysis results with two digits. oldset <- settings.meta(method.tau = "DL", digits = 2) # Conduct meta-analysis mg2 <- metagen(mean, SE, studlab = paste(author, year), data = Curtin2002, sm = "MD") mg2 # Use previous settings settings.meta(oldset) }if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use DerSimonian-Laird estimator (which was the default in meta in the year 2015). # Furthermore, print meta-analysis results with two digits. oldset <- settings.meta(method.tau = "DL", digits = 2) # Conduct meta-analysis mg2 <- metagen(mean, SE, studlab = paste(author, year), data = Curtin2002, sm = "MD") mg2 # Use previous settings settings.meta(oldset) }
Results from 20 trials examining the effectiveness of antithrombotic treatments to prevent strokes in patients with non-valvular atrial fibrillation.
Dogliotti2014Dogliotti2014
The data frame contains the following columns:
| study | character |
study label |
| id | numeric |
study ID |
| treatment | character |
treatment |
| stroke | numeric |
number of strokes |
| total | numeric |
number of individuals |
This data set comes from a systematic review aiming to estimate the effects of eight antithrombotic treatments including placebo in reducing the incidence of major thrombotic events in patients with non-valvular atrial fibrillation (Dogliotti et al., 2014).
The review included 20 studies with 79,808 participants, four studies are three-arm studies. The primary outcome is stroke reduction (yes / no).
medicine, odds ratios, network meta-analysis, Mantel-Haenszel method
Guido Schwarzer, [email protected]
Dogliotti A, Paolasso E, Giugliano RP (2014): Current and new oral antithrombotics in non-valvular atrial fibrillation: A network meta-analysis of 79808 patients. Heart, 100(5), 396–405. doi:10.1136/heartjnl-2013-304347
if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print odds ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Change appearance of confidence intervals cilayout("(", "-") # Transform data from long arm-based format to contrast-based # format. Argument 'sm' has to be used for odds ratio as summary # measure; by default the risk ratio is used in the metabin function # called internally. pw <- pairwise(treat = treatment, n = total, event = stroke, studlab = study, data = Dogliotti2014, sm = "OR") # Print log odds ratios (TE) and standard errors (seTE) head(pw, 5)[, 1:5] # Conduct network meta-analysis (NMA) with placebo as reference nma <- netmeta(pw, ref = "plac") # Details on excluded study selvars <- c("studlab", "event1", "n1", "event2", "n2") subset(pw, studlab == "WASPO, 2007")[, selvars] # Show network graph netgraph(nma, seq = "optimal", number = TRUE) # Conduct Mantel-Haenszel NMA nma_mh <- netmetabin(pw, ref = "plac") # Compare results of inverse variance and Mantel-Haenszel NMA nb <- netbind(nma, nma_mh, random = FALSE, name = c("Inverse variance", "Mantel-Haenszel")) forest(nb, xlim = c(0.15, 2), at = c(0.2, 0.5, 1, 2)) # Print and plot results for inverse variance NMA nma forest(nma) # Use previous settings settings.meta(oldset) }if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print odds ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Change appearance of confidence intervals cilayout("(", "-") # Transform data from long arm-based format to contrast-based # format. Argument 'sm' has to be used for odds ratio as summary # measure; by default the risk ratio is used in the metabin function # called internally. pw <- pairwise(treat = treatment, n = total, event = stroke, studlab = study, data = Dogliotti2014, sm = "OR") # Print log odds ratios (TE) and standard errors (seTE) head(pw, 5)[, 1:5] # Conduct network meta-analysis (NMA) with placebo as reference nma <- netmeta(pw, ref = "plac") # Details on excluded study selvars <- c("studlab", "event1", "n1", "event2", "n2") subset(pw, studlab == "WASPO, 2007")[, selvars] # Show network graph netgraph(nma, seq = "optimal", number = TRUE) # Conduct Mantel-Haenszel NMA nma_mh <- netmetabin(pw, ref = "plac") # Compare results of inverse variance and Mantel-Haenszel NMA nb <- netbind(nma, nma_mh, random = FALSE, name = c("Inverse variance", "Mantel-Haenszel")) forest(nb, xlim = c(0.15, 2), at = c(0.2, 0.5, 1, 2)) # Print and plot results for inverse variance NMA nma forest(nma) # Use previous settings settings.meta(oldset) }
Results from 41 trials examining the safety of inhaled medications in patients with chronic obstructive pulmonary disease.
Dong2013Dong2013
The data frame contains the following columns:
| id | integer |
study ID |
| treatment | character |
treatment |
| death | integer |
mortality |
| randomized | integer |
number of individuals |
This network meta-analysis compared the safety of inhaled medications in patients with chronic obstructive pulmonary disease (Dong et al., 2013).
Mortality was reported in 41 randomized trials, with a total of 52 462 patients. Mortality was low, with 2 408 deaths (4.6%) reported across all studies. There were nine studies that reported zero events in at least one of the treatment arms and three additional studies had zero events in all treatment arms.
This data set was used in Efthimiou et al. (2019) to illustrate the Mantel-Haenszel method for network meta-analysis.
medicine, odds ratios, network meta-analysis, Mantel-Haenszel method
Guido Schwarzer, [email protected]
Dong, Y.-H., Lin, H.-H., Shau, W.-Y., Wu, Y.-C., Chang, C.-H., & Lai, M.-S. (2013). Comparative safety of inhaled medications in patients with chronic obstructive pulmonary disease: Systematic review and mixed treatment comparison meta-analysis of randomised controlled trials. Thorax, 68(1), 48–56. doi:10.1136/thoraxjnl-2012-201926
Efthimiou, O., Rücker, G., Schwarzer, G., Higgins, J., Egger, M., & Salanti, G. (2019). A Mantel-Haenszel model for network meta-analysis of rare events. Statistics in Medicine, 38(16), 2992–3012. doi:10.1002/sim.8158
if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print odds ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Change appearance of confidence intervals cilayout("(", "-") # Transform data from long arm-based format to contrast-based # format. Argument 'sm' has to be used for odds ratio as summary # measure; by default the risk ratio is used in the metabin function # called internally. pw <- pairwise(treatment, death, randomized, studlab = id, data = Dong2013, sm = "OR") # Calculated log odds ratios (TE) and standard errors (seTE) pw[1:3, 1:9] # Conduct Mantel-Haenszel network meta-analysis (NMA) nma <- netmetabin(pw, ref = "plac") # Network graph netgraph(nma, seq = "optimal", col = "black", plastic = FALSE, points = TRUE, pch = 21, cex.points = 3, col.points = "black", bg.points = "gray", thickness = "se.fixed", number.of.studies = TRUE) # Show results for Mantel-Haenszel NMA nma forest(nma) # League table with network estimates in lower triangle and direct # estimates in upper triangle netleague(nma) # Assess inconsistency print(netsplit(nma), show = "both", ci = TRUE, overall = FALSE, nchar.trts = 6) # Use previous settings settings.meta(oldset) }if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print odds ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Change appearance of confidence intervals cilayout("(", "-") # Transform data from long arm-based format to contrast-based # format. Argument 'sm' has to be used for odds ratio as summary # measure; by default the risk ratio is used in the metabin function # called internally. pw <- pairwise(treatment, death, randomized, studlab = id, data = Dong2013, sm = "OR") # Calculated log odds ratios (TE) and standard errors (seTE) pw[1:3, 1:9] # Conduct Mantel-Haenszel network meta-analysis (NMA) nma <- netmetabin(pw, ref = "plac") # Network graph netgraph(nma, seq = "optimal", col = "black", plastic = FALSE, points = TRUE, pch = 21, cex.points = 3, col.points = "black", bg.points = "gray", thickness = "se.fixed", number.of.studies = TRUE) # Show results for Mantel-Haenszel NMA nma forest(nma) # League table with network estimates in lower triangle and direct # estimates in upper triangle netleague(nma) # Assess inconsistency print(netsplit(nma), show = "both", ci = TRUE, overall = FALSE, nchar.trts = 6) # Use previous settings settings.meta(oldset) }
Results from 19 studies assessing the prevalence of depression after myocardial infarction
Feng2019Feng2019
The data frame contains the following columns:
| author | character |
first author |
| year | integer |
publication year |
| region | character |
country |
| design | character |
study design |
| source | character |
sample source |
| age | numeric |
mean age |
| males | numeric |
percentage of males |
| first | numeric |
percentage of first-time MI |
| questionnaire | character |
self-report questionnaire |
| interview | character |
structured interview |
| timing | character |
timing of depression assessment |
| depr | integer |
subjects with depression |
| n | integer |
sample size |
This data set comes from a meta-analysis with 19 studies to estimate the prevalence of depression after a myocardial infarction. The variables depr and n contain the number of depressive patients and the total number of patients.
Guido Schwarzer, [email protected]
Feng L, Li L, Liu W, et al. (2019): Prevalence of depression in myocardial infarction: A PRISMA-compliant meta-analysis. Medicine, 98.
if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Conduct random effects meta-analysis mp1 <- metaprop(depr, n, data = Feng2019, studlab = paste(author, year), common = FALSE, prediction = TRUE) # Create forest plot forest(mp1, digits = 3, xlim = c(0, 1), print.pval.Q = FALSE, details = TRUE) }if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Conduct random effects meta-analysis mp1 <- metaprop(depr, n, data = Feng2019, studlab = paste(author, year), common = FALSE, prediction = TRUE) # Create forest plot forest(mp1, digits = 3, xlim = c(0, 1), print.pval.Q = FALSE, details = TRUE) }
Results from 7 trials examining the effectiveness of four dopamine agonists and placebo to reduce “off-time” in patients with advanced Parkinson disease.
Franchini2012Franchini2012
The data frame contains the following columns:
| Study | character |
study label |
| Treatment1 | character |
treatment 1 |
| y1 | numeric |
treatment effect arm 1 |
| sd1 | numeric |
standard deviation arm 2 |
| n1 | integer |
sample size arm 1 |
| Treatment2 | character |
treatment 2 |
| y2 | numeric |
treatment effect arm 2 |
| sd2 | numeric |
standard deviation arm 2 |
| n2 | integer |
sample size arm 1 |
| Treatment3 | character |
treatment 3 |
| y3 | numeric |
treatment effect arm 3 |
| sd3 | numeric |
standard deviation arm 2 |
| n3 | integer |
sample size arm 1 |
This network meta-analysis compared the effectiveness of four active treatments and placebo in patients with advanced Parkinson disease (Franchini et al., 2012). The outcome is mean lost work-time reduction in patients given dopamine agonists as adjunct therapy. The data are given as sample size, mean, and standard deviation in each trial arm.
This data set was used as an example in the supplemental material of Dias et al. (2013) where placebo is coded as 1 and the four active drugs as 2 to 5.
medicine, mean differences, network meta-analysis
Guido Schwarzer, [email protected]
Dias S, Sutton AJ, Ades AE, Welton NJ (2013): Evidence synthesis for decision making 2: A generalized linear modeling framework for pairwise and network meta-analysis of randomized controlled trials. Medical Decision Making, 33(5), 607–617. doi:10.1177/0272989X12458724
Franchini AJ, Dias S, Ades AE, Jansen JP, Welton, NJ (2012): Accounting for correlation in network meta-analysis with multi-arm trials. Research Synthesis Methods, 3(2), 142–160. doi:10.1002/jrsm.1049
if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print mean differences with two digits oldset <- settings.meta(digits = 2) # Transform data from wide arm-based format to contrast-based # format. Argument 'sm' must not be provided as the mean difference # is the default in R function metacont() called internally. pw <- pairwise(list(Treatment1, Treatment2, Treatment3), n = list(n1, n2, n3), mean = list(y1, y2, y3), sd = list(sd1, sd2, sd3), data = Franchini2012, studlab = Study, sm = "MD") # Show calculated mean differences (TE) for first three studies pw[1:5, c(3:7, 10, 1)] # Conduct network meta-analysis nma <- netmeta(pw) nma # Draw network graph netgraph(nma, points = TRUE, cex.points = 3, cex = 1.5, plastic = TRUE, thickness = "se.fixed", iterate = TRUE, start = "eigen") # Use previous settings settings.meta(oldset) }if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print mean differences with two digits oldset <- settings.meta(digits = 2) # Transform data from wide arm-based format to contrast-based # format. Argument 'sm' must not be provided as the mean difference # is the default in R function metacont() called internally. pw <- pairwise(list(Treatment1, Treatment2, Treatment3), n = list(n1, n2, n3), mean = list(y1, y2, y3), sd = list(sd1, sd2, sd3), data = Franchini2012, studlab = Study, sm = "MD") # Show calculated mean differences (TE) for first three studies pw[1:5, c(3:7, 10, 1)] # Conduct network meta-analysis nma <- netmeta(pw) nma # Draw network graph netgraph(nma, points = TRUE, cex.points = 3, cex = 1.5, plastic = TRUE, thickness = "se.fixed", iterate = TRUE, start = "eigen") # Use previous settings settings.meta(oldset) }
Results on depression severity from 17 studies comparing low dosage tricyclic antidepressants (TCA) and placebo for the treatment of depression.
Furukawa2003Furukawa2003
The data frame contains the following columns:
| author | character |
First author with information on dosage in parentheses |
| Ne | integer |
number of patients in low TCA group |
| Me | numeric |
depression severity (low TCA) |
| Se | numeric |
standard deviation (low TCA) |
| Nc | integer |
number of patients in placebo group |
| Mc | numeric |
depression severity (placebo) |
| Sc | numeric |
standard deviation (placebo) |
| measure | character |
depression scale |
Furukawa et al. (2003) carried out a systematic review comparing low dosage tricyclic antidepressants (TCA) with placebo for the treatment of depression. They reported the effect on presence/absence of depression and on depression severity at various time points. Here we focus on depression severity at four weeks. Most studies used some version of the Hamilton Depression Rating Scale, however, some studies used the Montgomery-Asberg Depression Rating Scale. Accordingly, it is not possible to pool the estimated effects directly.
This data set is used as an example in Schwarzer et al. (2015).
standardized mean differences
Guido Schwarzer, [email protected]
Furukawa TA, McGuire H, Barbui C (2003): Low dosage tricyclic antidepressants for depression. Cochrane Database of Systematic Reviews, 3, CD003197. doi:10.1002/14651858.CD003197
Schwarzer G, Carpenter JR and Rücker G (2015): Meta-Analysis with R (Use-R!). Springer International Publishing, Switzerland
if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use RevMan5 settings oldset <- settings.meta("RevMan5", digits = 2) # Conduct random effects meta-analysis with Hedges' g as effect measure mc2 <- metacont(Ne, Me, Se, Nc, Mc, Sc, common = FALSE, data = Furukawa2003, sm = "SMD") mc2 # Use previous settings settings.meta(oldset) }if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use RevMan5 settings oldset <- settings.meta("RevMan5", digits = 2) # Conduct random effects meta-analysis with Hedges' g as effect measure mc2 <- metacont(Ne, Me, Se, Nc, Mc, Sc, common = FALSE, data = Furukawa2003, sm = "SMD") mc2 # Use previous settings settings.meta(oldset) }
Results on complete response from 14 trials evaluating high-dose chemotherapy with autologous stem cell transplantation in patients with aggressive non-Hodgkin lymphoma.
Greb2008Greb2008
The data frame contains the following columns:
| study | character |
study label |
| Ee | integer |
complete responses (high-dose chemotherapy) |
| Ne | integer |
number of patients (high-dose chemotherapy) |
| Ec | integer |
complete responses (standard chemotherapy) |
| Nc | integer |
number of patients (standard chemotherapy) |
Greb et al. (2008) conducted a Cochrane Review to assess the effects of high-dose chemotherapy with autologous stem cell transplantation as part of the first-line treatment of adult patients with aggressive non-Hodgkin lymphoma. The primary outcome was survival time; the binary outcome 'complete response' was one of several secondary outcomes. For binary outcomes, the Cochrane review used the risk ratio and the common effect model.
This data set is used as an example in Schwarzer et al. (2015).
medicine, oncology, risk ratios
Guido Schwarzer, [email protected]
Greb A, Bohlius J, Schiefer D, et al. (2008): High‐dose chemotherapy with autologous stem cell transplantation in the first line treatment of aggressive non‐Hodgkin lymphoma (NHL) in adults. Cochrane Database of Systematic Reviews, 1, doi:10.1002/14651858.CD004024.pub2
Schwarzer G, Carpenter JR and Rücker G (2015): Meta-Analysis with R (Use-R!). Springer International Publishing, Switzerland
if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use RevMan 5 settings oldset <- settings.meta("RevMan5") # Conduct common effect meta-analysis with risk ratio as effect measure mb1 <- metabin(Ee, Ne, Ec, Nc, data = Greb2008, studlab = study, label.e = "High dose", label.c = "Standard", label.left = "Favours standard chemotherapy", label.right = "Favours high dose chemotherapy", col.label.left = "red", col.label.right = "green") mb1 # Create forest plot forest(mb1) # Use previous settings settings.meta(oldset) }if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use RevMan 5 settings oldset <- settings.meta("RevMan5") # Conduct common effect meta-analysis with risk ratio as effect measure mb1 <- metabin(Ee, Ne, Ec, Nc, data = Greb2008, studlab = study, label.e = "High dose", label.c = "Standard", label.left = "Favours standard chemotherapy", label.right = "Favours high dose chemotherapy", col.label.left = "red", col.label.right = "green") mb1 # Create forest plot forest(mb1) # Use previous settings settings.meta(oldset) }
Results from 16 case-control studies evaluating the impact of alcohol consumption on breast cancer risk.
Greenland1992Greenland1992
The data frame contains the following columns:
| author | character |
first author |
| year | integer |
publication year |
| b | numeric |
adjusted log risk ratio |
| SE | numeric |
standard error |
Greenland and Longecker (1992) describe a method to combine trend estimates from summarised dose-response data. A meta-analysis of 16 case-control studies evaluating the impact of alcohol consumption on breast cancer risk was used as an illustrative example. The estimates are the increase in the log relative risk of breast cancer associated with an average daily alcohol consumption of 1g.
The data are provided in Greenland and Longecker (1992), Table 3.
epidemiology, risk ratios
Guido Schwarzer, [email protected]
Greenland S, Longnecker MP (1992): Methods for trend estimation from summarized dose-response data, with applications to meta-analysis. American Journal of Epidemiology, 135(11): 1301–9.
if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Inverse variance method mg <- metagen(b, SE, data = Greenland1992, studlab = paste(author, year), sm = "RR", random = FALSE, overall.hetstat = FALSE, backtransf = FALSE) # Overall result print(mg, digits = 5) # Standard error for common effect estimate round(mg$seTE.common, 5) }if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Inverse variance method mg <- metagen(b, SE, data = Greenland1992, studlab = paste(author, year), sm = "RR", random = FALSE, overall.hetstat = FALSE, backtransf = FALSE) # Overall result print(mg, digits = 5) # Standard error for common effect estimate round(mg$seTE.common, 5) }
Results from 14 trials examining the mortality risk of interventions for decreasing blood loss and blood transfusion requirements during liver transplantation.
Gurusamy2011Gurusamy2011
The data frame contains the following columns:
| study | character |
study information |
| treatment | character |
treatment |
| death | integer |
mortality at 60 days post-transplantation |
| n | integer |
number of individuals |
This network meta-analysis compared the effectiveness of seven interventions for decreasing blood loss and blood transfusion requirements during liver transplantation (Gurusamy et al., 2011).
Fourteen studies reported mortality at 60 days, in 1,002 patients. Forty-five deaths were reported across all studies (4.5%). Six studies observed deaths in all treatment arms while three studies did not observe any deaths.
This data set was used in Efthimiou et al. (2019) to introduce the Mantel-Haenszel method for network meta-analysis.
One of the treatments (solvent detergent plasma) was only included in one study with zero events in both treatment arms; this study was excluded from all network meta-analyses. In addition, no death was observed in the antithrombin III arm of the only study evaluating this treatment which was excluded from the Mantel-Haenszel network meta-analysis.
medicine, odds ratios, network meta-analysis, Mantel-Haenszel methods
Guido Schwarzer, [email protected]
Gurusamy KS, Pissanou T, Pikhart H, Vaughan J, Burroughs AK, Davidson BR (2011): Methods to decrease blood loss and transfusion requirements for liver transplantation. Cochrane Database of Systematic Reviews, 12, CD009052. doi:10.1002/14651858.CD009052.pub2
Efthimiou O, Rücker G, Schwarzer G, Higgins J, Egger M, Salanti G (2019): A Mantel-Haenszel model for network meta-analysis of rare events. Statistics in Medicine, 38(16), 2992–3012. doi:10.1002/sim.8158
# Only study evaluating solvent detergent plasma subset(Gurusamy2011, study == "Williamson 1999") # Only study evaluating antithrombin III subset(Gurusamy2011, study == "Baudo 1992") if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print odds ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Change appearance of confidence intervals cilayout("(", "-") # Transform data from long arm-based format to contrast-based # format. Argument 'sm' has to be used for odds ratio as summary # measure; by default the risk ratio is used in the metabin function # called internally. pw <- pairwise(treatment, death, n, studlab = study, data = Gurusamy2011, sm = "OR") # Conduct Mantel-Haenszel network meta-analysis (NMA) nma_MH <- netmetabin(pw, ref = "cont") # Conduct inverse variance (IV) network meta-analysis nma_IV <- netmeta(pw, ref = "cont") # Network graph (Mantel-Haenszel NMA) netgraph(nma_MH, seq = "optimal", col = "black", plastic = FALSE, points = TRUE, pch = 21, cex.points = 3, col.points = "black", bg.points = "gray", thickness = "se.fixed", number.of.studies = TRUE) # Full network graph (based on inverse variance method, including # study comparing Antithrombin III with Control/Placebo) netgraph(nma_IV, seq = "optimal", col = "black", plastic = FALSE, points = TRUE, pch = 21, cex.points = 3, col.points = "black", bg.points = "gray", thickness = "se.fixed", number.of.studies = TRUE) # Compare results for Mantel-Haenszel and IV NMA forest(netbind(nma_MH, nma_IV, random = FALSE, name = c("MH NMA", "IV NMA"))) # Show results for Mantel-Haenszel NMA nma_MH forest(nma_MH) # League table with network estimates in lower triangle and direct # estimates in upper triangle netleague(nma_MH) # Assess inconsistency print(netsplit(nma_MH), show = "both", ci = TRUE, overall = FALSE, nchar.trts = 6) # Use previous settings settings.meta(oldset) }# Only study evaluating solvent detergent plasma subset(Gurusamy2011, study == "Williamson 1999") # Only study evaluating antithrombin III subset(Gurusamy2011, study == "Baudo 1992") if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print odds ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Change appearance of confidence intervals cilayout("(", "-") # Transform data from long arm-based format to contrast-based # format. Argument 'sm' has to be used for odds ratio as summary # measure; by default the risk ratio is used in the metabin function # called internally. pw <- pairwise(treatment, death, n, studlab = study, data = Gurusamy2011, sm = "OR") # Conduct Mantel-Haenszel network meta-analysis (NMA) nma_MH <- netmetabin(pw, ref = "cont") # Conduct inverse variance (IV) network meta-analysis nma_IV <- netmeta(pw, ref = "cont") # Network graph (Mantel-Haenszel NMA) netgraph(nma_MH, seq = "optimal", col = "black", plastic = FALSE, points = TRUE, pch = 21, cex.points = 3, col.points = "black", bg.points = "gray", thickness = "se.fixed", number.of.studies = TRUE) # Full network graph (based on inverse variance method, including # study comparing Antithrombin III with Control/Placebo) netgraph(nma_IV, seq = "optimal", col = "black", plastic = FALSE, points = TRUE, pch = 21, cex.points = 3, col.points = "black", bg.points = "gray", thickness = "se.fixed", number.of.studies = TRUE) # Compare results for Mantel-Haenszel and IV NMA forest(netbind(nma_MH, nma_IV, random = FALSE, name = c("MH NMA", "IV NMA"))) # Show results for Mantel-Haenszel NMA nma_MH forest(nma_MH) # League table with network estimates in lower triangle and direct # estimates in upper triangle netleague(nma_MH) # Assess inconsistency print(netsplit(nma_MH), show = "both", ci = TRUE, overall = FALSE, nchar.trts = 6) # Use previous settings settings.meta(oldset) }
Results from 170 trials examining 20 antidepressants and placebo in adults with major depressive disorder.
Hamza2021Hamza2021
The data frame contains the following columns:
| id | numeric |
study ID |
| drug | character |
treatment |
| dose | numeric |
drug dose |
| resp | numeric |
number of responders in treatment arm |
| total | numeric |
sample size in treatment arm |
| rob | character |
risk of bias (low / high) |
| age | numeric |
mean age in treatment arm |
| year | numeric |
year of publication |
| year.c | numeric |
year centered around 2010 |
| class | character |
drug class |
| dose_label | ordered |
drug dose as licensed or lower / higher |
| dose_flux | numeric |
fluoxetine-equivalent dose |
| varlnOR | character |
variance of log odds ratio (comparison to reference) |
This dataset goes back to the network meta-analysis by Cipriani et al. (2018) evaluting 20 antidepressants and placebo in adults with major depressive disorder. The primary outcome is the response rate, defined as the proportion of patients achieving at least a 50% reduction in symptoms.
The dataset and code to conduct a Bayesian dose-response network meta-analyis is publicly available on Zenodo (Hamza et al., 2021). The data have been used in two methodological publications on statistical methods for dose-response network meta-analysis (Hamza et al., 2024; Petropoulou et al., 2025). A reduced version of this data set is available in R package netdose under the name 'antidepressants'.
The data set is in long arm-based format, i.e., one treatment arm per row.
medicine, depression, odds ratios, component network meta-analysis
Hamza T, Furukawa TA, Orsini N, Cipriani A, Iglesias C, Salanti G (2021): A dose-effect network meta-analysis model: an application in antidepressants. Zenodo. doi:10.5281/zenodo.5866456
Cipriani A et al. (2018): Comparative efficacy and acceptability of 21 antidepressant drugs for the acute treatment of adults with major depressive disorder: a systematic review and network meta-analysis. Lancet, 391, 1357–66
Hamza T, Furukawa TA, Orsini N, Cipriani A, Iglesias CP, Salanti G (2024): A dose–effect network meta-analysis model with application in antidepressants using restricted cubic splines. Statistical Methods in Medical Research, 33, 1461–72
Petropoulou M, Rücker G, Schwarzer G (2026): Network meta-analysis with dose-response relationships. BMC Medical Research Methodology, 26, 17
if (requireNamespace("netdose", quietly = TRUE)) { # Load netdose package library("netdose") pw <- pairwise(agent = drug, dose = dose, studlab = id, event = resp, n = total, data = Hamza2021, sm = "OR") ## Not run: # Do not execute without user input due to the long run time drnma.quad <- netdose(TE, seTE, agent1, dose1, agent2, dose2, studlab, data = pw, method = "quadratic") dotplot(drnma.quad) plot(drnma.quad) ## End(Not run) }if (requireNamespace("netdose", quietly = TRUE)) { # Load netdose package library("netdose") pw <- pairwise(agent = drug, dose = dose, studlab = id, event = resp, n = total, data = Hamza2021, sm = "OR") ## Not run: # Do not execute without user input due to the long run time drnma.quad <- netdose(TE, seTE, agent1, dose1, agent2, dose2, studlab, data = pw, method = "quadratic") dotplot(drnma.quad) plot(drnma.quad) ## End(Not run) }
Results on clinical improvement after therapy from 17 trials evaluating haloperidol in patients with schizophrenia.
Higgins2008Higgins2008
The data frame contains the following columns:
| author | character |
study label |
| resp.halo | integer |
number of responders (haloperidol group) |
| fail.halo | integer |
number of failures (haloperidol group) |
| miss.halo | integer |
number of missing observations (haloperidol group) |
| resp.plac | integer |
number of responders (placebo group) |
| fail.plac | integer |
number of failures (placebo group) |
| miss.plac | integer |
number of missing observations (placebo group) |
Higgins et al. (2008) suggested several imputation methods for the meta-analysis of binary outcomes with missing data. The example data set with 17 trials comes originally from a Cochrane review comparing haloperidol with placebo for the treatment of schizophrenia. While the antipsychotic benefits of haloperidol were identified in the 1950's, trials in this patient population are prone to high proportions of missing outcome data, often due to insufficient compliance with randomised controlled trial protocols.
The outcome is clinical improvement after therapy. For each study, the number of responders, failures, and missing observations are available.
psychiatry, odds ratios, missing data
Guido Schwarzer, [email protected]
Higgins JPT, White IR, Wood AM (2008): Imputation methods for missing outcome data in meta-analysis of clinical trials. Clinical Trials, 5: 225-39
if (requireNamespace("metasens", quietly = TRUE)) { # Load metasens package library("metasens") # Print odds ratios and confidence limits with three digits oldset <- settings.meta(digits = 3) # Conduct common effect meta-analysis of available data ma <- metabin(resp.halo, resp.halo + fail.halo, resp.plac, resp.plac + fail.plac, data = Higgins2008, studlab = author, sm = "OR", method = "Inverse", random = FALSE, label.e = "Haloperidol", label.c = "Placebo", label.left = "Favours placebo", label.right = "Favours haloperidol") # Best case scenario for haloperidol ma_b <- metamiss(ma, miss.halo, miss.plac, method.miss = "b", small.values = "undesirable") # Worst case scenario for haloperidol ma_w <- metamiss(ma, miss.halo, miss.plac, method.miss = "w", small.values = "undesirable") # Forest plot ma_sens <- metamerge(ma, ma_b, text.pooled2 = "Best case scenario") ma_sens <- metamerge(ma_sens, ma_w, text.pooled2 = "Worst case scenario") forest(ma_sens) }if (requireNamespace("metasens", quietly = TRUE)) { # Load metasens package library("metasens") # Print odds ratios and confidence limits with three digits oldset <- settings.meta(digits = 3) # Conduct common effect meta-analysis of available data ma <- metabin(resp.halo, resp.halo + fail.halo, resp.plac, resp.plac + fail.plac, data = Higgins2008, studlab = author, sm = "OR", method = "Inverse", random = FALSE, label.e = "Haloperidol", label.c = "Placebo", label.left = "Favours placebo", label.right = "Favours haloperidol") # Best case scenario for haloperidol ma_b <- metamiss(ma, miss.halo, miss.plac, method.miss = "b", small.values = "undesirable") # Worst case scenario for haloperidol ma_w <- metamiss(ma, miss.halo, miss.plac, method.miss = "w", small.values = "undesirable") # Forest plot ma_sens <- metamerge(ma, ma_b, text.pooled2 = "Best case scenario") ma_sens <- metamerge(ma_sens, ma_w, text.pooled2 = "Worst case scenario") forest(ma_sens) }
Results from 54 trials comparing physical therapy interventions for community-dwelling adults with knee pain secondary to osteoarthritis.
Hong2015Hong2015
The data frame contains the following columns:
| id | numeric |
study ID |
| trt | character |
intervention |
| n | numeric |
number of individuals |
| mean_pain | numeric |
mean (pain outcome) |
| sd_pain | numeric |
standard deviation (pain outcome) |
| mean_disability | numeric |
mean (disability outcome) |
| sd_disability | numeric |
standard deviation (disability outcome) |
This data set comprises 54 trials from a network meta-analysis comparing 11 physical therapy interventions, including 'placebo' and 'no treatment' for community-dwelling adults with knee pain secondary to osteoarthritis (Hong et al., 2015).
Two patient-reported continuous outcomes were considered. Pain was reported in 51 studies, whereas disability was only reported in 26 trials. Evidence was available for all 11 interventions for both outcomes of interest.
medicine, pain, mean differences, network meta-analysis
Guido Schwarzer, [email protected]
Hong H, Chu H, Zhang J, Carlin BP (2016): A Bayesian missing data framework for generalized multiple outcome mixed treatment comparisons. Research Synthesis Methods, 7, 6–22. doi:10.1002/jrsm.1153
if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Transform data from long arm-based format to contrast-based format pw_pain <- pairwise(trt, n = n, mean = mean_pain, sd = sd_pain, studlab = id, data = Hong2015) # pw_dis <- pairwise(trt, n = n, mean = mean_disability, sd = sd_disability, studlab = id, data = Hong2015) # Conduct random effects network meta-analysis (NMA) with # - 'no treatment' as reference # - results from split-mouth designs as correlated outcomes nma_pain <- netmeta(pw_pain, common = FALSE, reference.group = "No treatment", small.values = "desirable") nma_dis <- netmeta(pw_dis, common = FALSE, reference.group = "No treatment", small.values = "desirable") # P-scores netrank(nma_pain) netrank(nma_dis) }if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Transform data from long arm-based format to contrast-based format pw_pain <- pairwise(trt, n = n, mean = mean_pain, sd = sd_pain, studlab = id, data = Hong2015) # pw_dis <- pairwise(trt, n = n, mean = mean_disability, sd = sd_disability, studlab = id, data = Hong2015) # Conduct random effects network meta-analysis (NMA) with # - 'no treatment' as reference # - results from split-mouth designs as correlated outcomes nma_pain <- netmeta(pw_pain, common = FALSE, reference.group = "No treatment", small.values = "desirable") nma_dis <- netmeta(pw_dis, common = FALSE, reference.group = "No treatment", small.values = "desirable") # P-scores netrank(nma_pain) netrank(nma_dis) }
Results from eight trials evaluating the treatment effect on systolic and diastolic blood pressure one year post randomisation.
INDANA_1yINDANA_1y
The data frame contains the following columns:
| trial | character |
trial label |
| n | numeric |
number of individuals |
| mean.sys | numeric |
systolic blood pressure (mmHG) |
| var.sys | numeric |
variance of systolic blood pressure |
| mean.dia | numeric |
diastolic blood pressure (mmHG) |
| var.dia | numeric |
variance of diastolic blood pressure |
| covariance | numeric |
covariance |
| age | numeric |
mean age |
| year | numeric |
year of publication |
This data set comes from eight trials evaluating the treatment effect on systolic and diastolic blood pressure one year post randomisation.
multivariate meta-analysis
Guido Schwarzer, [email protected]
if (requireNamespace("mvmeta", quietly = TRUE)) { # mvmeta example }if (requireNamespace("mvmeta", quietly = TRUE)) { # mvmeta example }
Results from seven trials evaluating the treatment effect on systolic blood pressure two years post randomisation. Responders are defined as patients with a lower systolic blood pressure after two years.
INDANA_2y_respINDANA_2y_resp
The data frame contains the following columns:
| trial | character |
trial label |
| resp.exp | numeric |
responders in experimental group |
| fail.exp | numeric |
failures in experimental group |
| miss.exp | numeric |
missing observations in experimental group |
| resp.plac | numeric |
responders in placebo group |
| fail.plac | numeric |
failures in placebo group |
| miss.plac | numeric |
missing observations in placebo group |
This data set comes from seven trials evaluating the treatment effect on systolic blood pressure two years post randomisation. Responders are defined as patients with a lower systolic blood pressure after two years.
Guido Schwarzer, [email protected]
if (requireNamespace("meta", quietly = TRUE)) { library("meta") ma <- metabin(resp.exp, resp.exp + fail.exp, resp.plac, resp.plac + fail.plac, data = INDANA_2y_resp, studlab = trial) # ma }if (requireNamespace("meta", quietly = TRUE)) { library("meta") ma <- metabin(resp.exp, resp.exp + fail.exp, resp.plac, resp.plac + fail.plac, data = INDANA_2y_resp, studlab = trial) # ma }
Results from seven trials evaluating the treatment effect on systolic blood pressure two years post randomisation.
INDANA_2y_sysINDANA_2y_sys
The data frame contains the following columns:
| trial | character |
trial label |
| group | character |
treatment |
| mean.sys | numeric |
systolic blood pressure (mmHG) |
| sd.sys | numeric |
standard deviation of systolic blood pressure |
| nobs | numeric |
number of observations |
| nmiss | numeric |
number of missing observations |
This data set comes from seven trials evaluating the treatment effect on systolic blood pressure two years post randomisation.
Guido Schwarzer, [email protected]
if (requireNamespace("meta", quietly = TRUE)) { library("meta") pw <- pairwise(group, n = nobs, mean = mean.sys, sd = sd.sys, data = INDANA_2y_sys, studlab = trial, reference.group = "placebo") # summary(metagen(pw)) }if (requireNamespace("meta", quietly = TRUE)) { library("meta") pw <- pairwise(group, n = nobs, mean = mean.sys, sd = sd.sys, data = INDANA_2y_sys, studlab = trial, reference.group = "placebo") # summary(metagen(pw)) }
Results from 102 trials comparing seven drug and non-drug interventions to prevent pain during propofol injection.
Jalota2011Jalota2011
The data frame contains the following columns:
| id | numeric |
study ID |
| study | character |
study label |
| trt | character |
treatment |
| pain | numeric |
number of individuals with pain |
| n | numeric |
number of individuals |
| author | character |
first author |
| year | numeric |
year of publication |
This data set comes from a systematic review of randomized controlled trials on seven drug and non-drug interventions to prevent pain during propofol injection (Jalota et al., 2011). The binary outcome was pain, with relative risk (RR) as a measure of effect.
The core data were extracted from R package nmadb using the
command readByID("482001").
medicine, pain, risk ratios, network meta-analysis
Guido Schwarzer, [email protected]
Jalota L, Kalira V, George E, et al. (2011): Prevention of pain on injection of propofol: systematic review and meta-analysis. British Medical Journal, 342, d1110. doi:10.1136/bmj.d1110.
if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print risk ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Transform data from long arm-based format to contrast-based # format. Argument 'sm' is optional as the risk ratio is used by default in # the metabin function called internally. pw <- pairwise(trt, pain, n, studlab = study, data = Jalota2011, sm = "RR") # Conduct random effects network meta-analysis (NMA) # with hand vein as reference nma <- netmeta(pw, common = FALSE, ref = "Hand vein") # Show network graph netgraph(nma, seq = "o", multiarm = TRUE, rotate = 3 / n * 360) # Print and plot results for network meta-analysis nma forest(nma, label.left = "Favours other", label.right = "Favours Hand vein") # Use previous settings settings.meta(oldset) }if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print risk ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Transform data from long arm-based format to contrast-based # format. Argument 'sm' is optional as the risk ratio is used by default in # the metabin function called internally. pw <- pairwise(trt, pain, n, studlab = study, data = Jalota2011, sm = "RR") # Conduct random effects network meta-analysis (NMA) # with hand vein as reference nma <- netmeta(pw, common = FALSE, ref = "Hand vein") # Show network graph netgraph(nma, seq = "o", multiarm = TRUE, rotate = 3 / n * 360) # Print and plot results for network meta-analysis nma forest(nma, label.left = "Favours other", label.right = "Favours Hand vein") # Use previous settings settings.meta(oldset) }
Results from 66 trials examining eight classes of antidepressants and placebo for the primary care setting.
Linde2015Linde2015
The data frame contains the following columns:
| id | integer |
study ID |
| author | character |
first author |
| year | integer |
year of publication |
| treatment1 | character |
treatment 1 |
| treatment2 | character |
treatment 2 |
| treatment3 | character |
treatment 3 |
| n1 | integer |
number of patients (arm 1) |
| resp1 | integer |
number of early responder (arm 1) |
| remi1 | integer |
number of early remissions (arm 1) |
| loss1 | integer |
number of patients loss to follow-up (arm 1) |
| loss.ae1 | integer |
number of patients loss to follow-up due to adverse events (arm 1) |
| ae1 | integer |
number of patients with adverse events (arm 1) |
| n2 | integer |
number of patients (arm 2) |
| resp2 | integer |
number of early responder (arm 2) |
| remi2 | integer |
number of early remissions (arm 2) |
| loss2 | integer |
number of patients loss to follow-up (arm 2) |
| loss.ae2 | integer |
number of patients loss to follow-up due to adverse events (arm 2) |
| ae2 | integer |
number of patients with adverse events (arm 2) |
| n3 | integer |
number of patients (arm 3) |
| resp3 | integer |
number of early responder (arm 3) |
| remi3 | integer |
number of early remissions (arm 3) |
| loss3 | integer |
number of patients loss to follow-up (arm 3) |
| loss.ae3 | integer |
number of patients loss to follow-up due to adverse events (arm 3) |
| ae3 | integer |
number of patients with adverse events (arm 3) |
This data set comes from a systematic review of 8 pharmacological treatments of depression and placebo in primary care with 66 studies (8 of which were 3-arm studies) including 14,785 patients.
The primary outcome is early response, defined as at least a 50% score reduction on a depression scale after completion of treatment. Secondary outcomes (also measured as dichotomous) were early remission (defined as having a symptom score below a fixed threshold after completion of treatment), lost to follow-up, lost to follow-up due to adverse events, and any adverse event. The odds ratio was used as effect measure.
This data set was used as an example in Rücker and Schwarzer (2017) who introduced methods to resolve conflicting rankings of outcomes in network meta-analysis.
medicine, psychiatry, odds ratios, network meta-analysis
Guido Schwarzer, [email protected]
Linde, K., Kriston, L., Rücker, G., Jamil, S., Schumann, I., Meissner, K., Sigterman, K., & Schneider, A. (2015). Efficacy and acceptability of pharmacological treatments for depressive disorders in primary care: Systematic review and network meta-analysis. Annals of Family Medicine, 13(1), 69–79. doi:10.1370/afm.1687
Rücker, G., & Schwarzer, G. (2017). Resolve conflicting rankings of outcomes in network meta-analysis: Partial ordering of treatments. Research Synthesis Methods, 8(4), 526–536. doi:10.1002/jrsm.1270
if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print odds ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Change appearance of confidence intervals cilayout("(", "-") # Define order of treatments in printouts trts <- c("TCA", "SSRI", "SNRI", "NRI", "Low-dose SARI", "NaSSa", "rMAO-A", "Hypericum", "Placebo") # Transform data from wide arm-based format to contrast-based format # (outcome: early response). Argument 'sm' has to be used for odds # ratio as summary measure; by default the risk ratio is used in the # metabin function called internally. pw1 <- pairwise(list(treatment1, treatment2, treatment3), event = list(resp1, resp2, resp3), n = list(n1, n2, n3), studlab = id, data = Linde2015, sm = "OR") # Conduct random effects network meta-analysis for primary outcome # (early response); small number of early responses is bad (argument # small.values) nma1 <- netmeta(pw1, common = FALSE, reference = "Placebo", seq = trts, small.values = "undesirable") nma1 # Random effects NMA for early remission pw2 <- pairwise(treat = list(treatment1, treatment2, treatment3), event = list(remi1, remi2, remi3), n = list(n1, n2, n3), studlab = id, data = Linde2015, sm = "OR") nma2 <- netmeta(pw2, common = FALSE, seq = trts, ref = "Placebo", small.values = "undesirable") nma2 # Ranking of treatments nr1 <- netrank(nma1) nr2 <- netrank(nma2) nr1 nr2 # Partial order of treatment rankings (two outcomes) outcomes <- c("Early response", "Early remission") po12 <- netposet(nr1, nr2, outcomes = outcomes) plot(po12) # Use previous settings settings.meta(oldset) }if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print odds ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Change appearance of confidence intervals cilayout("(", "-") # Define order of treatments in printouts trts <- c("TCA", "SSRI", "SNRI", "NRI", "Low-dose SARI", "NaSSa", "rMAO-A", "Hypericum", "Placebo") # Transform data from wide arm-based format to contrast-based format # (outcome: early response). Argument 'sm' has to be used for odds # ratio as summary measure; by default the risk ratio is used in the # metabin function called internally. pw1 <- pairwise(list(treatment1, treatment2, treatment3), event = list(resp1, resp2, resp3), n = list(n1, n2, n3), studlab = id, data = Linde2015, sm = "OR") # Conduct random effects network meta-analysis for primary outcome # (early response); small number of early responses is bad (argument # small.values) nma1 <- netmeta(pw1, common = FALSE, reference = "Placebo", seq = trts, small.values = "undesirable") nma1 # Random effects NMA for early remission pw2 <- pairwise(treat = list(treatment1, treatment2, treatment3), event = list(remi1, remi2, remi3), n = list(n1, n2, n3), studlab = id, data = Linde2015, sm = "OR") nma2 <- netmeta(pw2, common = FALSE, seq = trts, ref = "Placebo", small.values = "undesirable") nma2 # Ranking of treatments nr1 <- netrank(nma1) nr2 <- netrank(nma2) nr1 nr2 # Partial order of treatment rankings (two outcomes) outcomes <- c("Early response", "Early remission") po12 <- netposet(nr1, nr2, outcomes = outcomes) plot(po12) # Use previous settings settings.meta(oldset) }
Results from 93 trials examining 22 interventions (including placebo and usual care) for the primary care of depression.
Linde2016Linde2016
The data frame contains the following columns:
| id | integer |
study ID |
| author | character |
first author |
| year | numeric |
year of publication |
| resp | numeric |
number of responders |
| n | numeric |
number of patients |
| int | character |
intervention label |
| int.long | character |
intervention label (full name) |
This data set comes from a network meta-analysis of 22 treatments of depression in primary care (Linde et al., 2016), based on 93 trials (79 two-arm trials, 13 three-arm trials, and one four-arm trial). The primary outcome was response after treatment (yes/no), defined as a reduction from baseline by at least 50% on a depression scale. This data set contains log odds ratios with standard errors for all pairwise comparisons.
The interventions comprised both medical and psychological treatments, also in combination, including placebo and usual care (UC) (Linde et al., 2016). Pharmacological interventions were tricyclic antidepressants (TCA), selective serotonin reuptake inhibitors (SSRI), serotonin-noradrenaline reuptake inhibitors (SNRI), noradrenaline reuptake inhibitors (NRI), low- dose serotonin (5-HT2) antagonists and reuptake inhibitors (low-dose SARI), noradrenergic and specific serotonergic agents (NaSSa), reversible inhibitors of monoaminoxidase A (rMAO-A), hypericum extracts, and an individualized drug. Psychological interventions were cognitive behavioral therapy (CBT; four forms: face-to-face CBT, remote therapist-led CBT, guided self-help CBT, and no or minimal contact CBT), face-to-face problem-solving therapy (PST), face-to-face interpersonal psychotherapy, face-to-face psychodynamic therapy, and “other face-to-face therapy”. Combination therapies were face-to-face CBT + SSRI, face-to-face PST + SSRI, and face-to-face interpersonal psychotherapy + SSRI.
This data set was used as an example in Rücker et al. (2020) to illustrate component network meta-analysis using frequentist methods.
medicine, psychiatry, odds ratios, network meta-analysis, component network meta-analysis
Guido Schwarzer, [email protected]
Linde, K., Rücker, G., Schneider, A., & Kriston, L. (2016). Questionable assumptions hampered interpretation of a network meta-analysis of primary care depression treatments. Journal of Clinical Epidemiology, 71, 86–96. doi:10.1016/j.jclinepi.2015.10.010
Rücker, G., Petropoulou, M., & Schwarzer, G. (2020). Network meta-analysis of multicomponent interventions. Biometrical Journal, 62(3), 808–821. doi:10.1002/bimj.201800167
if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print odds ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Define order of treatments in printouts and forest plots trts <- c("SSRI", "Face-to-face CBT", "Face-to-face interpsy", "Face-to-face PST", "Face-to-face CBT + SSRI", "Face-to-face interpsy + SSRI", "Face-to-face PST + SSRI", "Face-to-face psychodyn", "Other face-to-face", "TCA", "SNRI", "NRI", "Low-dose SARI", "NaSSa", "rMAO-A", "Ind drug", "Hypericum", "Remote CBT", "Self-help CBT", "No contact CBT", "UC", "Placebo") # Use pairwise() to transform data to comparison-based format pw <- pairwise(treat = int, event = resp, n = n, studlab = paste(author, year), data = Linde2016, reference = "plac", sm = "OR") # Conduct random effects network meta-analysis nma <- netmeta(pw, reference.group = "placebo", seq = trts, common = FALSE) # Network graph netgraph(nma, seq = "o") # Show results nma forest(nma, xlim = c(0.2, 50)) # Additive component network meta-analysis with placebo as inactive # treatment cnma <- netcomb(nma, inactive = "placebo") cnma forest(cnma, xlim = c(0.2, 50)) # Use previous settings settings.meta(oldset) }if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print odds ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Define order of treatments in printouts and forest plots trts <- c("SSRI", "Face-to-face CBT", "Face-to-face interpsy", "Face-to-face PST", "Face-to-face CBT + SSRI", "Face-to-face interpsy + SSRI", "Face-to-face PST + SSRI", "Face-to-face psychodyn", "Other face-to-face", "TCA", "SNRI", "NRI", "Low-dose SARI", "NaSSa", "rMAO-A", "Ind drug", "Hypericum", "Remote CBT", "Self-help CBT", "No contact CBT", "UC", "Placebo") # Use pairwise() to transform data to comparison-based format pw <- pairwise(treat = int, event = resp, n = n, studlab = paste(author, year), data = Linde2016, reference = "plac", sm = "OR") # Conduct random effects network meta-analysis nma <- netmeta(pw, reference.group = "placebo", seq = trts, common = FALSE) # Network graph netgraph(nma, seq = "o") # Show results nma forest(nma, xlim = c(0.2, 50)) # Additive component network meta-analysis with placebo as inactive # treatment cnma <- netcomb(nma, inactive = "placebo") cnma forest(cnma, xlim = c(0.2, 50)) # Use previous settings settings.meta(oldset) }
Results from 16 studies evaluating anti-TNF-alpha inhibitors in patients with rheumatoid arthritis.
Lloyd2010Lloyd2010
The data frame contains the following columns:
| author | character |
first author |
| year | integer |
publication year |
| mean.das | numeric |
mean for outcome DAS-28 |
| lower.das | numeric |
lower limit for outcome DAS-28 |
| upper.das | numeric |
upper limit for outcome DAS-28 |
| mean.haq | numeric |
mean for outcome HAQ |
| lower.haq | numeric |
lower limit for outcome HAQ |
| upper.haq | numeric |
upper limit for outcome HAQ |
| n | integer |
sample size |
Lloyd et al. (2010) report results of a systematic review evaluating the effectiveness of anti-TNF-alpha inhibitors in the treatment of rheumatoid arthritis. The authors conducted separate meta-analyses for HAQ and DAS-28.
medicine, mean differences
Guido Schwarzer, [email protected]
Lloyd, S., Bujkiewicz, S., Wailoo, A.J., et al. (2010). The effectiveness of anti-TNF-alpha therapies when used sequentially in rheumatoid arthritis patients: A systematic review and meta-analysis. Rheumatology (Oxford), 49, 2313-21. doi:10.1093/rheumatology/keq169
if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Only consider studies providing data for both outcomes lloyd5 <- subset(Lloyd2010, !is.na(mean.haq) & !is.na(mean.das)) # Univariate meta-analysis of the DAS-28 outcome m.das <- metagen(mean.das, lower = lower.das, upper = upper.das, data = lloyd5, sm = "MD", studlab = paste(author, year), random = FALSE) # Univariate meta-analysis of the HAQ outcome m.haq <- metagen(mean.haq, lower = lower.haq, upper = upper.haq, data = lloyd5, sm = "MD", studlab = paste(author, year), random = FALSE) # Forest plots forest(m.das, test.overall = TRUE, hetstat = FALSE, digits.TE = 2, digits.se = 2) forest(m.haq, test.overall = TRUE, hetstat = FALSE, digits.TE = 2, digits.se = 2) }if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Only consider studies providing data for both outcomes lloyd5 <- subset(Lloyd2010, !is.na(mean.haq) & !is.na(mean.das)) # Univariate meta-analysis of the DAS-28 outcome m.das <- metagen(mean.das, lower = lower.das, upper = upper.das, data = lloyd5, sm = "MD", studlab = paste(author, year), random = FALSE) # Univariate meta-analysis of the HAQ outcome m.haq <- metagen(mean.haq, lower = lower.haq, upper = upper.haq, data = lloyd5, sm = "MD", studlab = paste(author, year), random = FALSE) # Forest plots forest(m.das, test.overall = TRUE, hetstat = FALSE, digits.TE = 2, digits.se = 2) forest(m.haq, test.overall = TRUE, hetstat = FALSE, digits.TE = 2, digits.se = 2) }
Results from 37 trials evaluating non-steroidal anti-inflammatory drugs (NSAIDS) in patients with acute pain.
Moore1998Moore1998
The data frame contains the following columns:
| id | integer |
study ID |
| author | character |
first author |
| year | integer |
publication year |
| Ee | integer |
number of treatment successes (NSAIDS group) |
| Ne | integer |
number of patients (NSAIDS group) |
| Ec | integer |
number of treatment successes (control group) |
| Nc | integer |
number of patients (control group) |
| nonenglish | integer |
non-English publication |
| medline | integer |
listed in Medline |
| grey | integer |
grey literature |
| samecont | integer |
same control group |
| journal | character |
journal |
Moore et al. (1998) conducted a systematic review of 37 randomised placebo-controlled trials on the effectiveness and safety of topical non-steroidal anti-inflammatory drugs (NSAIDS) in acute pain. The main outcome was treatment success, defined as a reduction in pain of at least 50%.
This data set is used as an example in Schwarzer et al. (2015).
medicine, odds ratios, publication bias
Guido Schwarzer, [email protected]
Moore, R. A., Tramèr, M. R., Carroll, D., et al. (1998). Quantitative systematic Review of topically applied non-steroidal anti-inflammatory drugs. British Medical Journal, 316, 333-38
Schwarzer, G., Carpenter, J. R., & Rücker, G. (2015). Meta-analysis with R. Cham, Switzerland: Springer.
if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Conduct meta-analysis m <- metabin(Ee, Ne, Ec, Nc, data = Moore1998, sm = "OR", studlab = id, label.e = "NSAIDS", label.c = "Placebo") # Funnel plot fun <- funnel(m, type = "contour", random = FALSE, pch = 16) legend(0.25, 1.25, bty = "n", legend = fun$text.contour, fill = fun$col.contour) }if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Conduct meta-analysis m <- metabin(Ee, Ne, Ec, Nc, data = Moore1998, sm = "OR", studlab = id, label.e = "NSAIDS", label.c = "Placebo") # Funnel plot fun <- funnel(m, type = "contour", random = FALSE, pch = 16) legend(0.25, 1.25, bty = "n", legend = fun$text.contour, fill = fun$col.contour) }
Results from 19 trials evaluating mucolytic agents in patients with chronic bronchitis or chronic obstructive pulmonary disease.
Poole2003Poole2003
The data frame contains the following columns:
| author | character |
first author |
| year | integer |
publication year |
| Ne | integer |
sample size (mucolytic agents) |
| Me | numeric |
mean exacerbations per months (mucolytic agents) |
| Se | numeric |
standard deviation (mucolytic agents) |
| Nc | integer |
sample size (placebo) |
| Mc | numeric |
mean exacerbations per months (placebo) |
| Sc | numeric |
standard deviation (placebo) |
| duration | character |
study duration |
Poole and Black (2003) conducted a Cochrane review to evaluate mucolytic agents versus placebo for patients with chronic bronchitis or chronic obstructive pulmonary disease. The outcome used here is the mean number of acute exacerbations per month. Acute exacerbation is defined as an increase in cough and in the volume or purulence of sputum. All 17 studies included in the meta-analysis report a mean number of exacerbations and we can work with mean differences, rather than standardised mean differences. Note, later versions of this Cochrane review no longer evaluate the mean number of exacerbations per month.
This data set is used as an example in Schwarzer et al. (2015).
medicine, mean differences, subgroup analysis
Guido Schwarzer, [email protected]
Poole, P.J., Black, P.N. (2003). Mucolytic agents for chronic bronchitis or chronic obstructive pulmonary disease. Cochrane Database of Systematic Reviews, 1, doi:10.1002/14651858.CD001287
Schwarzer, G., Carpenter, J. R., & Rücker, G. (2015). Meta-analysis with R. Cham, Switzerland: Springer.
if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use RevMan 5 settings oldset <- settings.meta("RevMan5", digits.I2 = 2, digits.tau = 3, digits.sd = 2) # Conduct random effects meta-analysis m <- metacont(Ne, Me, Se, Nc, Mc, Sc, data = Poole2003, studlab = paste(author, year), common = FALSE, subgroup = duration, subgroup.name = "Duration", sep.subgroup = ": ", label.e = "Mucolytic agent", label.c = "Placebo", label.left = "Favours mucolytic agent", label.right = "Favours placebo", col.label.left = "green", col.label.right = "red") # Forest plot forest(m, xlim = c(-0.5, 0.2), xlab = paste0("Difference in mean number of\n", "acute exacerbations per month")) # Use previous settings settings.meta(oldset) }if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use RevMan 5 settings oldset <- settings.meta("RevMan5", digits.I2 = 2, digits.tau = 3, digits.sd = 2) # Conduct random effects meta-analysis m <- metacont(Ne, Me, Se, Nc, Mc, Sc, data = Poole2003, studlab = paste(author, year), common = FALSE, subgroup = duration, subgroup.name = "Duration", sep.subgroup = ": ", label.e = "Mucolytic agent", label.c = "Placebo", label.left = "Favours mucolytic agent", label.right = "Favours placebo", col.label.left = "green", col.label.right = "red") # Forest plot forest(m, xlim = c(-0.5, 0.2), xlab = paste0("Difference in mean number of\n", "acute exacerbations per month")) # Use previous settings settings.meta(oldset) }
Results from 11 studies evaluating pharmacotherapy in patients with hypertension.
Quan2000Quan2000
The data frame contains the following columns:
| study | character |
study label |
| Ee | integer |
fatal cerebrovascular events (pharmacotherapy) |
| Ne | integer |
number of patients (pharmacotherapy) |
| Ec | integer |
fatal cerebrovascular events (control) |
| Nc | integer |
number of patients (control) |
Quan et al. (2000) conducted a Cochrane Review to evaluate whether the benefit of treating hypertension in women differed between younger and older women, as well as between white and African American women. In the systematic review, the Peto method was used for pooling. The primary outcome was the occurrence of fatal cerebrovascular events, a rare event in hypertension. This data set contains the subgroup of women older than 55 years.
This data set is used as an example in Schwarzer et al. (2015).
medicine, Peto's method
Guido Schwarzer, [email protected]
Quan, A.P., Kerlikowske, K. Gueyffier, F., et al., & Indana Investigators (2000). Pharmacotherapy for hypertension in women of different races. Cochrane Database of Systematic Reviews, 2, doi:10.1002/14651858.CD002146
Schwarzer, G., Carpenter, J. R., & Rücker, G. (2015). Meta-analysis with R. Cham, Switzerland: Springer.
if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use RevMan 5 settings oldset <- settings.meta("RevMan5") # Conduct meta-analyis with Peto method m <- metabin(Ee, Ne, Ec, Nc, sm = "OR", method = "Peto", data = Quan2000, studlab = study, random = FALSE) m # Use previous settings settings.meta(oldset) }if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use RevMan 5 settings oldset <- settings.meta("RevMan5") # Conduct meta-analyis with Peto method m <- metabin(Ee, Ne, Ec, Nc, sm = "OR", method = "Peto", data = Quan2000, studlab = study, random = FALSE) m # Use previous settings settings.meta(oldset) }
Results from 26 trials evaluating treatments for diabetes.
Senn2013Senn2013
The data frame contains the following columns:
| study | character |
study ID |
| treatment | character |
treatment |
| n | integer |
sample size |
| mean | numeric |
mean |
| sd | numeric |
standard deviation |
| type | character |
outcome type |
| author | character |
first author |
| year | numeric |
first author |
This network meta-analysis compared the effectiveness of nine active treatments and placebo in patients with diabetes (Senn et al., 2013). Patients enrolled in 26 studies included in this data set were treated to reduce blood glucose (HBA1c) levels. The effect measure was the mean difference of average plasma glucose concentration HbA1C and measured in mmol / mol. The outcome was either measured as a change score or post intervention (variable type).
medicine, diabetes, mean differences, network meta-analysis
Guido Schwarzer, [email protected]
Senn S, Gavini F, Magrez D, Scheen A (2013): Issues in performing a network meta-analysis. Statistical Methods in Medical Research, 22, 169–89
if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print mean differences with two digits oldset <- settings.meta(digits = 2) # Transform data from long arm-based format to contrast-based # format. pw1 <- pairwise(studlab = study, treat = treatment, n = n, mean = mean, sd = sd, data = Senn2013, varnames = c("MD", "seMD")) # Conduct network meta-analysis nma1 <- netmeta(pw1, random = FALSE, reference.group = "placebo") nma1 # Draw network graph netgraph(nma1, seq = "optimal", multiarm = TRUE, cex = 1.5, lwd = 7, rotate = -1 / n * 360, pch.points = 21, bg.points = "lightblue", cex.points = n.trts, points.max = 10, labels = paste0(trts, "\n(n=", n.trts, ")"), offset = 0.045) # Use previous settings settings.meta(oldset) }if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print mean differences with two digits oldset <- settings.meta(digits = 2) # Transform data from long arm-based format to contrast-based # format. pw1 <- pairwise(studlab = study, treat = treatment, n = n, mean = mean, sd = sd, data = Senn2013, varnames = c("MD", "seMD")) # Conduct network meta-analysis nma1 <- netmeta(pw1, random = FALSE, reference.group = "placebo") nma1 # Draw network graph netgraph(nma1, seq = "optimal", multiarm = TRUE, cex = 1.5, lwd = 7, rotate = -1 / n * 360, pch.points = 21, bg.points = "lightblue", cex.points = n.trts, points.max = 10, labels = paste0(trts, "\n(n=", n.trts, ")"), offset = 0.045) # Use previous settings settings.meta(oldset) }
Results from 12 simulated patients in n-of-1 meta-analysis in asthma (Senn, 2024).
Senn2024Senn2024
The data frame contains the following columns:
| patid | integer |
patient ID |
| n.cycles | numeric |
number of cycles |
| md | numeric |
mean difference |
| var.md | integer |
variance of mean difference |
Senn (2024) simulated data from 12 patients to describe a meta-analysis method of n-of-1 trials.
medicine, asthma, mean differences, n-of-1 meta-analysis
Guido Schwarzer, [email protected]
Senn S (2024): The analysis of continuous data from n-of-1 trials using paired cycles: a simple tutorial. Trials, 25, 128
if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") mg4 <- metagen(md, sqrt(var.md), cycles = n.cycles, data = Senn2024, studlab = paste("Patient", patid), sm = "MD", method.tau = "DL") # forest(mg4, digits.TE = 2, digits.se = 2, digits.sd = 2, digits.tau2 = 1, digits.weight = 2, xlim = c(-200, 550), at = c(-200, 0, 200, 400), details = TRUE) }if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") mg4 <- metagen(md, sqrt(var.md), cycles = n.cycles, data = Senn2024, studlab = paste("Patient", patid), sm = "MD", method.tau = "DL") # forest(mg4, digits.TE = 2, digits.se = 2, digits.sd = 2, digits.tau2 = 1, digits.weight = 2, xlim = c(-200, 550), at = c(-200, 0, 200, 400), details = TRUE) }
Results from 17 trials, 11 studies in children and 6 studies in adults, reporting the maximum fall in the forced expiratory volume in 1 second (FEV_1) over the course of follow-up, expressed as a percentage.
Spooner2002Spooner2002
The data frame contains the following columns:
| author | character |
first author |
| year | character |
year of publication |
| Ne | integer |
number of participants in nedocromil sodium group |
| Me | numeric |
maximum fall in the FEV_1 (nedocromil sodium) |
| Se | numeric |
standard deviation (nedocromil sodium) |
| Nc | integer |
number of participants in placebo group |
| Mc | numeric |
maximum fall in the FEV_1 (placebo) |
| Sc | numeric |
standard deviation (placebo) |
| agegroup | factor |
age group (children or adults) |
Spooner et al. (2002) conducted a Cochrane review comparing nedocromil sodium (experimental treatment) with placebo (control) for preventing exercise-induced bronchoconstriction. Primary outcome was the maximum fall in the forced expiratory volume in 1 second (FEV_1) over the course of follow-up, expressed as a percentage. This outcome is available for 17 studies, 11 studies in children and 6 studies in adults. For each study, the mean value, standard deviation, and sample size are reported for both the experimental and control group. The authors conducted a random-effects meta-analysis with the mean difference as effect measure, i.e.\ mean value in the nedocromil sodium group minus mean value in the placebo group.
This data set is used as an example in Schwarzer et al. (2015).
mean differences, subgroup analysis
Guido Schwarzer, [email protected]
Spooner, C., Saunders, L. D., & Rowe, B. H. (2002). Nedocromil sodium for preventing exercise‐induced bronchoconstriction. Cochrane Database of Systematic Reviews, 1, CD001183. doi:10.1002/14651858.CD001183
Schwarzer, G., Carpenter, J. R., & Rücker, G. (2015). Meta-analysis with R. Cham, Switzerland: Springer.
if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use settings from RevMan5 oldset <- settings.meta("RevMan5") # Conduct random effects meta-analysis with age subgroups mc1 <- metacont(Ne, Me, Se, Nc, Mc, Sc, data = Spooner2002, studlab = paste(author, year), subgroup = agegroup, print.subgroup.name = FALSE, label.e = "Nedocromil sodium", label.c = "Placebo", common = FALSE) mc1 # Use previous settings settings.meta(oldset) }if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use settings from RevMan5 oldset <- settings.meta("RevMan5") # Conduct random effects meta-analysis with age subgroups mc1 <- metacont(Ne, Me, Se, Nc, Mc, Sc, data = Spooner2002, studlab = paste(author, year), subgroup = agegroup, print.subgroup.name = FALSE, label.e = "Nedocromil sodium", label.c = "Placebo", common = FALSE) mc1 # Use previous settings settings.meta(oldset) }
Results from 4 trials evaluating single-agent purine analogues in patients with chronic lymphocytic leukaemia.
Steurer2006Steurer2006
The data frame contains the following columns:
| author | character |
first author |
| year | integer |
publication year |
| Ne | integer |
number of patients (purine antagonists) |
| Nc | integer |
number of patients (alkylator-based) |
| HR | numeric |
hazard ratio |
| lowHR | numeric |
lower limit |
| uppHR | numeric |
upper limit |
| lnHR | numeric |
log hazard ratio |
| selnHR | numeric |
standard error |
Steurer et al. (2006) conducted a Cochrane review to evaluate the effect of single-agent purine analogues for the treatment of chronic lymphocytic leukaemia. This data set contains data from the main outcome, overall survival. Note, the hazard ratios and confidence limits have been reported in the Cochrane review with only two significant figures and were recalculated using the reported log hazard ratios and standard errors.
This data set is used as an example in Schwarzer et al. (2015).
medicine, oncology, hazard ratios
Guido Schwarzer, [email protected]
Steurer, M., Pall, G., Richards, S., et al. (2006). Purine antagonists for chronic lymphocytic leukaemia. Cochrane Database of Systematic Reviews, 3, doi:10.1002/14651858.CD004270.pub2
Schwarzer, G., Carpenter, J. R., & Rücker, G. (2015). Meta-analysis with R. Cham, Switzerland: Springer.
if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use RevMan 5 settings oldset <- settings.meta("RevMan5") # Conduct common effect meta-analysis m1 <- metagen(lnHR, selnHR, data = Steurer2006, studlab = paste(author, year), sm = "HR", random = FALSE, n.e = Ne, n.c = Nc) m1 # Same analysis using lower and upper confidence limits m2 <- metagen(HR, lower = lowHR, upper = uppHR, data = Steurer2006, transf = FALSE, studlab = paste(author, year), sm = "HR", random = FALSE, n.e = Ne, n.c = Nc) m2 # Use previous settings settings.meta(oldset) }if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Use RevMan 5 settings oldset <- settings.meta("RevMan5") # Conduct common effect meta-analysis m1 <- metagen(lnHR, selnHR, data = Steurer2006, studlab = paste(author, year), sm = "HR", random = FALSE, n.e = Ne, n.c = Nc) m1 # Same analysis using lower and upper confidence limits m2 <- metagen(HR, lower = lowHR, upper = uppHR, data = Steurer2006, transf = FALSE, studlab = paste(author, year), sm = "HR", random = FALSE, n.e = Ne, n.c = Nc) m2 # Use previous settings settings.meta(oldset) }
Results from 29 trials assessing efficacy of three drug classes as adjuvant treatment to levodopa therapy in patients with Parkinson disease and motor complications.
Stowe2010Stowe2010
The data frame contains the following columns:
| study | character |
study label |
| id | integer |
study id |
| t1 | character |
treatment 1 |
| y1 | numeric |
treatment effect arm 1 |
| sd1 | numeric |
standard deviation arm 1 |
| n1 | integer |
sample size arm 1 |
| t2 | character |
treatment 2 |
| y2 | numeric |
treatment effect arm 2 |
| sd2 | numeric |
standard deviation arm 2 |
| n2 | integer |
sample size arm 2 |
| t3 | character |
treatment 3 |
| y3 | numeric |
treatment effect arm 3 |
| sd3 | numeric |
standard deviation arm 3 |
| n3 | integer |
sample size arm 3 |
This data set contains data from a Cochrane review assessing efficacy and safety of three drug classes as adjuvant treatment to levodopa therapy in patients with Parkinson disease and motor complications (Stowe et al., 2010).
The authors conducted three pairwise meta-analyses comparing dopamine agonists, catechol-O-methyl transferase inhibitors (COMTI), and monoamine oxidase type B inhibitors (MAOBI) with placebo. The primary outcome was the mean reduction of the time spent in a relatively immobile ‘off’ phase (mean off-time), calculated in hours per day. Relative treatment effects were expressed as mean difference. Data on this outcome were available for 5,331 patients from 28 studies comparing an active treatment with placebo and one three-arm study comparing two active treatments with placebo.
medicine, mean differences, network meta-analysis
Guido Schwarzer, [email protected]
Stowe, R., Ives, N., Clarke, C. E., Deane, K., Hilten, V., Wheatley, K., Gray, R., Handley, K., & Furmston, A. (2010). Evaluation of the efficacy and safety of adjuvant treatment to levodopa therapy in Parkinson's disease patients with motor complications. Cochrane Database of Systematic Reviews, 7, CD007166. doi:10.1002/14651858.CD007166.pub2
if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print mean differences with two digits and standard errors with 3 # digits oldset <- settings.meta(digits = 2, digits.se = 3) # Transform data from wide arm-based format to contrast-based # format. Argument 'sm' must not be provided as the mean difference # is the default in R function metacont() called internally. pw <- pairwise(treat = list(t1, t2, t3), n = list(n1, n2, n3), mean = list(y1, y2, y3), sd = list(sd1, sd2, sd3), studlab = study, data = Stowe2010, sm = "MD") # Show calculated mean differences (TE) for three studies selstudy <- c("COMTI(E) INT-OZ", "LARGO", "COMTI(E) Nomecomt") subset(pw, studlab %in% selstudy)[, c(3:7, 10, 1)] # Conduct random effects network meta-analysis (NMA) # with placebo as reference nma <- netmeta(pw, common = FALSE, ref = "plac") # Show network graph netgraph(nma, number = TRUE, multiarm = TRUE, cex = 1.25, offset = 0.025, cex.number = 1, pos.number.of.studies = 0.3) # Print NMA results nma # Forest plot with NMA results forest(nma) # Forest plot showing all network estimates of active treatments # compared with other treatments forest(nma, ref = c("C", "D", "M"), baseline = FALSE, drop = TRUE) # Treatment ranking using P-scores netrank(nma) # Rankogram with all ranking probabilities set.seed(1909) ran <- rankogram(nma) ran plot(ran) # Treatment ranking using SUCRAs netrank(ran) # League table showing network and direct estimates netleague(nma, seq = netrank(nma), ci = FALSE) # Use previous settings settings.meta(oldset) }if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print mean differences with two digits and standard errors with 3 # digits oldset <- settings.meta(digits = 2, digits.se = 3) # Transform data from wide arm-based format to contrast-based # format. Argument 'sm' must not be provided as the mean difference # is the default in R function metacont() called internally. pw <- pairwise(treat = list(t1, t2, t3), n = list(n1, n2, n3), mean = list(y1, y2, y3), sd = list(sd1, sd2, sd3), studlab = study, data = Stowe2010, sm = "MD") # Show calculated mean differences (TE) for three studies selstudy <- c("COMTI(E) INT-OZ", "LARGO", "COMTI(E) Nomecomt") subset(pw, studlab %in% selstudy)[, c(3:7, 10, 1)] # Conduct random effects network meta-analysis (NMA) # with placebo as reference nma <- netmeta(pw, common = FALSE, ref = "plac") # Show network graph netgraph(nma, number = TRUE, multiarm = TRUE, cex = 1.25, offset = 0.025, cex.number = 1, pos.number.of.studies = 0.3) # Print NMA results nma # Forest plot with NMA results forest(nma) # Forest plot showing all network estimates of active treatments # compared with other treatments forest(nma, ref = c("C", "D", "M"), baseline = FALSE, drop = TRUE) # Treatment ranking using P-scores netrank(nma) # Rankogram with all ranking probabilities set.seed(1909) ran <- rankogram(nma) ran plot(ran) # Treatment ranking using SUCRAs netrank(ran) # League table showing network and direct estimates netleague(nma, seq = netrank(nma), ci = FALSE) # Use previous settings settings.meta(oldset) }
Results from 52 trials comparing guided tissue regeneration, enamel matrix derivatives, and their combination therapies or patients with periodontal infrabony lesions.
Su2018Su2018
The data frame contains the following columns:
| id | numeric |
study ID |
| study | character |
study label |
| trt | character |
treatment |
| n | numeric |
number of individuals |
| change | numeric |
change in clinical attachment level |
| sd | numeric |
standard deviation |
| author | character |
first author |
| year | numeric |
year of publication |
This data set comes from a systematic review of randomized controlled trials on eight interventions for patients with periodontal infrabony lesions (Su and Tu, 2018). The continuous outcome was change in clinical attachment between baseline and 12 months after treatment. The studies either used a parallel or split-mouth design.
dentistry, correlated, mean differences, network meta-analysis
Guido Schwarzer, [email protected]
Su Y, Tu Y (2018): Statistical approaches to adjusting weights for dependent arms in network meta-analysis. Research Synthesis Methods, 9, 431–40. doi:10.1002/jrsm.1304
if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Transform data from long arm-based format to contrast-based format pw <- pairwise(trt, n = n, mean = change, sd = sd, data = Su2018, studlab = study) # Conduct random effects network meta-analysis (NMA) with # - flap operation as reference # - results from split-mouth designs as correlated outcomes nma <- netmeta(pw, common = FALSE, reference = "Flap op", correlated = design == "split") # Show network graph netgraph(nma, seq = "o") # Print results for network meta-analysis nma }if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Transform data from long arm-based format to contrast-based format pw <- pairwise(trt, n = n, mean = change, sd = sd, data = Su2018, studlab = study) # Conduct random effects network meta-analysis (NMA) with # - flap operation as reference # - results from split-mouth designs as correlated outcomes nma <- netmeta(pw, common = FALSE, reference = "Flap op", correlated = design == "split") # Show network graph netgraph(nma, seq = "o") # Print results for network meta-analysis nma }
Results from 28 trials evaluating effect of serum cholesterin concentration lowering on risk of ischaemic heart disease
Thompson1999Thompson1999
The data frame contains the following columns:
| studyid | integer |
study ID |
| ihd.cont | integer |
number of ischaemic heart disease (control group) |
| noihd.cont | integer |
number of non-events (control group) |
| ihd.exp | integer |
number of ischaemic heart disease (treated group) |
| noihd.exp | integer |
number of non-events (treated group) |
| OR | numeric |
odds ratio |
| logOR | numeric |
log odds ratio |
| varlogOR | numeric |
variance of log odds ratio |
| cholr | numeric |
cholesterol reduction (mmol/l) |
Thompson & Sharp (1999) compare several meta-regression approaches to explain heterogeneity in meta-analysis. The data set used goes back to Law et al. (1994).
epidemiology, odds ratios, meta-regression
Guido Schwarzer, [email protected]
Thompson, S. G. Sharp, S. J. (1999). Explaining heterogeneity in meta-analysis: a comparison of methods. Statistics in Medicine, 18: 2693-708
Law, M.R., Wald, N.J., Thompson, S.G. (1994). By how much and how quickly does reduction in serum cholesterol concentration lower risk of ischaemic heart disease? British Medical Journal, 308, 367-73
if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Conduct meta-analysis ma <- metabin(ihd.exp, ihd.exp + noihd.exp, ihd.cont, ihd.cont + noihd.cont, data = Thompson1999, sm = "OR", method = "Inverse") # Thompson & Sharp (1999), Table III # (1) None metareg(ma, cholr, method.tau = "FE") # (3a) Additive (MM) metareg(ma, cholr, method.tau = "DL") }if (requireNamespace("meta", quietly = TRUE)) { # Load meta package library("meta") # Conduct meta-analysis ma <- metabin(ihd.exp, ihd.exp + noihd.exp, ihd.cont, ihd.cont + noihd.cont, data = Thompson1999, sm = "OR", method = "Inverse") # Thompson & Sharp (1999), Table III # (1) None metareg(ma, cholr, method.tau = "FE") # (3a) Additive (MM) metareg(ma, cholr, method.tau = "DL") }
Results from three trials examining the mortality risk of three treatments and placebo in patients with chronic obstructive pulmonary disease.
Woods2010Woods2010
The data frame contains the following columns:
| author | character |
first author / study name |
| treatment | character |
treatment |
| r | integer |
number of deaths |
| N | integer |
number of patients |
Count mortality statistics in randomised controlled trials of treatments for chronic obstructive pulmonary disease (Woods et al., 2010, Table 1).
medicine, odds ratios, network meta-analysis
Guido Schwarzer, [email protected]
Woods BS, Hawkins N, Scott DA (2010): Network meta-analysis on the log-hazard scale, combining count and hazard ratio statistics accounting for multi-arm trials: A tutorial. BMC Medical Research Methodology, 10, 54. doi:10.1186/1471-2288-10-54
if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print odds ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Change appearance of confidence intervals cilayout("(", "-") # Transform data from long arm-based format to contrast-based # format. Argument 'sm' has to be used for odds ratio as summary # measure; by default the risk ratio is used in the metabin function # called internally. pw <- pairwise(treatment, event = r, n = N, studlab = author, data = Woods2010, sm = "OR") pw # Conduct network meta-analysis nma <- netmeta(pw) nma # Show forest plot forest(nma, ref = "Placebo", drop = TRUE, leftlabs = "Contrast to Placebo") # Use previous settings settings.meta(oldset) }if (requireNamespace("netmeta", quietly = TRUE)) { # Load netmeta package library("netmeta") # Print odds ratios and confidence limits with two digits oldset <- settings.meta(digits = 2) # Change appearance of confidence intervals cilayout("(", "-") # Transform data from long arm-based format to contrast-based # format. Argument 'sm' has to be used for odds ratio as summary # measure; by default the risk ratio is used in the metabin function # called internally. pw <- pairwise(treatment, event = r, n = N, studlab = author, data = Woods2010, sm = "OR") pw # Conduct network meta-analysis nma <- netmeta(pw) nma # Show forest plot forest(nma, ref = "Placebo", drop = TRUE, leftlabs = "Contrast to Placebo") # Use previous settings settings.meta(oldset) }