# \donttest{
# Define order of treatments in depression data set dat.linde2015
#
trts <- c("TCA", "SSRI", "SNRI", "NRI",
"Low-dose SARI", "NaSSa", "rMAO-A", "Hypericum", "Placebo")
# Outcome labels
#
outcomes <- c("Early response", "Early remission")
# (1) Early response
#
pw1 <- pairwise(treat = list(treatment1, treatment2, treatment3),
event = list(resp1, resp2, resp3), n = list(n1, n2, n3),
studlab = id, data = dat.linde2015, sm = "OR")
#
net1 <- netmeta(pw1, common = FALSE,
seq = trts, ref = "Placebo", small.values = "undesirable")
# (2) Early remission
#
pw2 <- pairwise(treat = list(treatment1, treatment2, treatment3),
event = list(remi1, remi2, remi3), n = list(n1, n2, n3),
studlab = id, data = dat.linde2015, sm = "OR")
#
net2 <- netmeta(pw2, common = FALSE,
seq = trts, ref = "Placebo", small.values = "undesirable")
# Partial order of treatment rankings (two outcomes)
#
po12 <- netposet(netrank(net1), netrank(net2), outcomes = outcomes)
# Scatter plot
#
plot(po12)
# Biplot (same scatter plot as only two outcomes considered)
#
plot(po12, "biplot")
# Hasse diagram for outcomes early response and early remission
#
if (FALSE) {
if (requireNamespace("Rgraphviz", quietly = TRUE))
hasse(po12)
}
# Scatter plot for outcomes early response and early remission
#
oldpar <- par(pty = "s")
plot(po12)
par(oldpar)
# Consider five outcomes
#
# Outcome labels
#
outcomes <- c("Early response", "Early remission",
"Lost to follow-up", "Lost to follow-up due to AEs",
"Adverse events (AEs)")
# (3) Loss to follow-up
#
pw3 <- pairwise(treat = list(treatment1, treatment2, treatment3),
event = list(loss1, loss2, loss3), n = list(n1, n2, n3),
studlab = id, data = dat.linde2015, sm = "OR")
#
net3 <- netmeta(pw3, common = FALSE,
seq = trts, ref = "Placebo", small.values = "desirable")
# (4) Loss to follow-up due to adverse events
#
pw4 <- pairwise(treat = list(treatment1, treatment2, treatment3),
event = list(loss.ae1, loss.ae2, loss.ae3), n = list(n1, n2, n3),
studlab = id, data = subset(dat.linde2015, id != 55), sm = "OR")
#
net4 <- netmeta(pw4, common = FALSE,
seq = trts, ref = "Placebo", small.values = "desirable")
# (5) Adverse events
#
pw5 <- pairwise(treat = list(treatment1, treatment2, treatment3),
event = list(ae1, ae2, ae3), n = list(n1, n2, n3),
studlab = id, data = dat.linde2015, sm = "OR")
#
net5 <- netmeta(pw5, common = FALSE,
seq = trts, ref = "Placebo", small.values = "desirable")
# Partial order of treatment rankings (based on netrank() objects)
#
po.ranks <- netposet(netrank(net1), netrank(net2),
netrank(net3), netrank(net4), netrank(net5), outcomes = outcomes)
# Same result (based on netmeta() objects)
#
po.nets <- netposet(net1, net2, net3, net4, net5,
outcomes = outcomes)
#
all.equal(po.ranks, po.nets)
# Print matrix with P-scores (random effects model)
#
po.nets$P.random
if (FALSE) {
# Hasse diagram for all outcomes (random effects model)
#
if (requireNamespace("Rgraphviz", quietly = TRUE))
hasse(po.ranks)
}
# }
# Example using ranking matrix with P-scores
#
# Ribassin-Majed L, Marguet S, Lee A.W., et al. (2017):
# What is the best treatment of locally advanced nasopharyngeal
# carcinoma? An individual patient data network meta-analysis.
# Journal of Clinical Oncology, 35, 498-505
#
outcomes <- c("OS", "PFS", "LC", "DC")
treatments <- c("RT", "IC-RT", "IC-CRT", "CRT",
"CRT-AC", "RT-AC", "IC-RT-AC")
#
# P-scores (from Table 1)
#
pscore.os <- c(15, 33, 63, 70, 96, 28, 45) / 100
pscore.pfs <- c( 4, 46, 79, 52, 94, 36, 39) / 100
pscore.lc <- c( 9, 27, 47, 37, 82, 58, 90) / 100
pscore.dc <- c(16, 76, 95, 48, 72, 32, 10) / 100
#
pscore.matrix <- data.frame(pscore.os, pscore.pfs, pscore.lc, pscore.dc)
rownames(pscore.matrix) <- treatments
colnames(pscore.matrix) <- outcomes
pscore.matrix
#
po <- netposet(pscore.matrix)
po12 <- netposet(pscore.matrix[, 1:2])
po
po12
#
if (FALSE) {
if (requireNamespace("Rgraphviz", quietly = TRUE)) {
hasse(po)
hasse(po12)
}
}
#
oldpar <- par(pty = "s")
plot(po12)
par(oldpar)
Run the code above in your browser using DataLab