我希望能够使用R中meta包中的forest()函数并排绘制森林图。我已经使用metafor包中的forest.default()函数成功完成了此任务,但是我更喜欢使用meta包生成的forest()图。到目前为止,这是我尝试过的:
oldpar <- par(mfrow=c(1, 2))
oldpar
res <- metagen(TE=sens, seTE=sens.se, data=df, studlab=study)
forest(res, data=df, method.tau="REML", comb.random=TRUE,
leftcols="studlab", rightcols=c("effect", "ci")
res2 <- metagen(TE=sens2, seTE=sens.se2, data=df, studlab=study)
forest(res2, data=df, method.tau="REML", comb.random=TRUE,
leftcols="studlab", rightcols=c("effect", "ci")
我也尝试过:
par(mfrow=c(1,2))
par(mar=c(5,4,1,1))
res <- metagen(TE=sens, seTE=sens.se, data=df, studlab=study)
forest(res, data=df, method.tau="REML", comb.random=TRUE,
leftcols="studlab", rightcols=c("effect", "ci")
par(mar=c(5,3,1,2))
res2 <- metagen(TE=sens2, seTE=sens.se2, data=df, studlab=study)
forest(res2, data=df, method.tau="REML", comb.random=TRUE,
leftcols="studlab", rightcols=c("effect", "ci")
最后,我尝试使用“ grid”和“ lattice”程序包无济于事。当我尝试将图存储为对象时,它们在全局环境中显示为“ NULL”。
这两种方法都适用于其他类型的地块,但对于元数据包中的森林功能生成的森林地块似乎无法解释。
如果您有解决办法,请告诉我。
谢谢!
更新-我的数据集的结构:
structure(list(study = 1:7, sens = c(0.88, 0.86, 0.75, 0.9, 0.91,
0.93, 0.98), sens.se = c(0.13, 0.08, 0.2, 0.06, 0.13, 0.15, 0.66
), sens2 = c(0.76, 0.68, 0.9, 0.82, 0.76, 0.85, 0.76), sens.se2 = c(0.14,
0.08, 0.2, 0.06, 0.14, 0.15, 0.66)), class = "data.frame", row.names =
c(NA, -7L))
答案 0 :(得分:1)
以下是使用meta中可用数据集的可复制示例。如评论中所述,元数据使用非常好的绘图工具,但它们可用于网格图形系统。
library(meta)
library(vcd)
library(gridGraphics)
library(gridExtra)
data(Olkin95)
meta.olkin95 <- metabin(event.e, n.e, event.c, n.c,
studlab = paste(author, year),
data = Olkin95, subset = c(41, 47, 51, 59),
method = "Inverse")
forest(meta.olkin95, comb.fixed = F)
plot.olkin95 <- grid.grab()
data(Fleiss93cont)
meta.fleiss93 <- metacont(n.e, mean.e, sd.e, n.c, mean.c, sd.c,
studlab = paste(study, year),
data=Fleiss93cont,
sm="SMD")
forest(meta.fleiss93, comb.fixed = F)
plot.fleiss93 <- grid.grab()
grid.newpage()
grid.arrange(plot.olkin95, plot.fleiss93, ncol=1)