0

我希望能够使用 R 中 meta 包中的 forest() 函数并排绘制森林图。我已经使用 metafor 包中的 forest.default() 函数成功地做到了这一点,但我更喜欢森林() 使用 meta 包生成的图。这是我到目前为止所尝试的:

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))
4

1 回答 1

3

这是一个使用 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)

在此处输入图像描述

于 2018-11-15T13:39:16.023 回答