使用元包中的森林函数绘制并排森林图
Plot side-by-side forest plots using forest function in meta package
我希望能够使用 R 中元包中的 forest() 函数并排绘制森林图。我已经使用 metafor 中的 forest.default() 函数成功完成了此操作包,但我更喜欢使用元包生成的 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"。
这两种方法都适用于其他类型的地块,但莫名其妙地似乎不适用于由元包中的 forest 函数生成的森林地块。
如果您对此有解决方案,请告诉我。
谢谢!
更新 - 我的数据集的结构:
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))
这里是一个使用 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)
我希望能够使用 R 中元包中的 forest() 函数并排绘制森林图。我已经使用 metafor 中的 forest.default() 函数成功完成了此操作包,但我更喜欢使用元包生成的 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"。
这两种方法都适用于其他类型的地块,但莫名其妙地似乎不适用于由元包中的 forest 函数生成的森林地块。
如果您对此有解决方案,请告诉我。
谢谢!
更新 - 我的数据集的结构:
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))
这里是一个使用 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)