在meta包中使用林函数绘制并排林图

时间:2018-10-08 23:35:50

标签: r par forestplot

我希望能够使用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))

1 个答案:

答案 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)

enter image description here