[R] Problem with forest plot in 'meta' after update and byvar command
Antonello Preti
@ntov|r@| @end|ng |rom gm@||@com
Thu Mar 21 23:04:32 CET 2019
Dear all, I have a problem with the package ‘meta’.
I have 15 studies in a meta-analysis, belonging to two groups (a different
control was used depending on the study).
After the general estimation of the effect of the experimental treatment, I
want to evaluate the effect by type of control. So I used the ‘update’
function with the ‘byvar’ command.
I want the sample size of the experimental group and the control group to
be printed in the forest plot. So I added the sample size to the result of
the subgroup analysis.
Then I have arranged the forest plot to have the sample size to be printed
before the effect size of each study, by grouping the studies according to
their type of control (two groups).
In the forest plot, I can see the total sample size of the whole sample of
studies, but the forest plot does not print the total sample size by the
group. Instead, it prints a point.
I do not know why.
Usually the forest plot after the ‘update byvar’ print the total sample
size by the group, as in the fig. 2.8 of Schwarzer, Carpenter, Rucker,
Meta-analysis with R, Springer, 2015.
What can I do?
Thank you in advance,
Antonello Preti
### Here the data and the codes I have used.
### The data
datAgg <- structure(list(Study = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L,
8L, 9L, 10L, 11L, 13L, 14L, 15L, 16L), .Label = c("Amber et al. 2015
Other ",
"Beta et al. 1994 TAU ", "Gemma†et al. 2012 TAU ",
"Delta et al. 2015 Other ", "Delta et al. 2015 TAU ",
"Heta 1989 Other ", "Heta 1989 TAU ",
"Lemme et al. 2008 Other ", "Roda et al. 2011 Other ",
"Saint et al. 2013 TAU ", "Stabat et al. 2005 TAU ",
"Spera et al. 1999 Other ", "Tania et al. 2016 TAU ",
"Vanda et al. 2002 TAU ", "Vasto et al. 2005 Other ",
"Vasto et al. 2005 TAU ", "Wolf et al. 2005 Other ",
"Wolf et al. 2005 TAU "), class = "factor"), yi =
c(0.413781967817236,
0.897867818781807, -0.629691420114331, -0.0570629170645163,
0.100199348083711,
0.166720438987659, -0.0791416968479593, -0.516848713049707,
-0.588171436440896,
1.68578725963673, 0.549424389382073, -0.528085519326364,
0.0552725558889493,
0.450384415544429, 0.455766346836709), vi = c(0.0526848369519856,
0.0653245457221679, 0.0403678427142577, 0.0460018003388296,
0.0465699994730023,
0.200694892619406, 0.200156585204499, 0.0574699191913509,
0.0542032153656511,
0.060279300844124, 0.0988317519005698, 0.039802280364049,
0.0952744649456488,
0.0446012425417145, 0.0441325163026295), tr = c(42, 40, 52, 43,
43, 10, 10, 41, 38, 38, 21, 52, 21, 47, 47), ct = c(36, 29, 52,
44, 43, 10, 10, 32, 39, 54, 21, 52, 21, 45, 46), group = c("Vale",
"ADE", "ADE", "Vale", "ADE", "Vale", "ADE", "Vale", "Vale",
"ADE", "ADE", "ADE", "ADE", "Vale", "ADE"), sem = c(0.229531777651779,
0.255586669687932, 0.200917502259653, 0.214480302915745, 0.215800832883014,
0.447989835397418, 0.44738862882789, 0.239728845138316, 0.232815840023077,
0.245518432799095, 0.314375176978988, 0.199505088566806, 0.308665619960579,
0.211190062601711, 0.210077405502423)), row.names = c(NA, -15L
), class = "data.frame")
###########################################################
#
# Analysis with 'meta'
#
###########################################################
### aggregated data, check
head(datAgg)
### call the library
library(meta)
### analysis
meta1 <- metagen(TE=yi, seTE=sem, data=datAgg, studlab=datAgg$Study,
sm="SMD", hakn=TRUE, method.tau="EB")
### add sample size to the results of the meta-analysis
meta1$n.e=datAgg$tr
meta1$n.c=datAgg$ct
### summary
summary(meta1)
### forest plot
### digits.se=2 is the minimum number of significant digits for standard
error (in this case = 2)
forest(meta1, digits.se=2, leftcols=c("studlab","n.e", "n.c", "TE",
"seTE"),
leftlabs=c("Study", "n∞ \n Treated", "n∞ \n Controls", "Estimated \n
Effect Size", "Standard \n error"))
###########################################################
### subgroup analysis
###########################################################
modelsub <- update(meta1, byvar=group)
summary(modelsub)
### add sample size to the results of the meta-analysis
modelsub$n.e=datAgg$tr
modelsub$n.c=datAgg$ct
###########################################################
### forest plot
###########################################################
### save as .tiff
tiff("Figure.tiff", width = 12, height = 8, units = 'in', res = 300,
compression = 'lzw')
### forest plot
### digits=2 is the minimum number of significant digits for data
forest(modelsub,studlab=paste(datAgg$Study), print.byvar=FALSE,
fontsize=10,fs.heading=10,digits=2,
leftcols=c("studlab","n.e", "n.c"),comb.fixed=T, overall=T, col.by="black",
leftlabs=c("Study", "n∞ \n Treated", "n∞ \n Controls"))
dev.off()
### done
[[alternative HTML version deleted]]
More information about the R-help
mailing list