这需要更多的手动工作,但您可以首先使用forest()
函数创建森林图(显示所有研究并在底部为汇总估计留出一些空间),然后拟合模型(例如,使用rma()
函数)不包括任何内容研究你不想分析的部分,然后用addpoly()
函数添加汇总估计。
这是一个例子:
library(metafor)
### load BCG vaccine data
data(dat.bcg)
### calculate log relative risks and corresponding sampling variances
dat <- escalc(measure="RR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg, slab=paste(dat$author, dat$year, sep=","))
dat
### forest plot of all studies
forest(dat$yi, dat$vi, xlim=c(-9.5, 7.5), ylim=c(-1.5,16), atransf=exp, at=log(c(.05, .25, 1, 4, 20)))
text(-9.5, 15, "Author(s) and Year", pos=4)
text( 7.5, 15, "Observed RR [95% CI]", pos=2)
### random-effects model (without Aronson, 1948)
res <- rma(yi, vi, data=dat, subset=author!="Aronson")
res
### add summary estimate to the bottom
addpoly(res, atransf=exp, row=-1, mlab="RE Model (w/out Aronson, 1948)")
### horizontal separation line
abline(h=0)