R中的并排森林图

6

这是一些通用数据。我目前使用metafor软件包和par()函数将图形并排显示。然而,我希望最好能够在第二个图形中删除研究列和两个图形中的对数RR估计值。我也想让两个森林图更靠近一起。抱歉之前没有提供数据 - 我是新手。

library(metafor)
par(mfrow=c(1,2))

### 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)
### default forest plot of the observed log relative risks
forest(dat$yi, dat$vi)
### default forest plot of the observed log relative risks for second plot
forest(dat$yi, dat$vi)

有人知道如何在R中制作并排的森林图吗?我希望将子组名称放在左侧,然后在右侧立即放置两个森林图(并排)。类似于这个http://www.nature.com/ng/journal/v43/n8/images_article/ng.882-F1.jpg,但要简单得多。我已经尝试了metafor包中的par()函数,但它不起作用。

2
你真的应该展示一些样本数据和你尝试过的代码(包括你计划使用的函数/包)。请阅读《如何创建一个出色的R可重现示例》(https://dev59.com/eG025IYBdhLWcg3whGSx)。这将使其他人更容易地帮助你。 - MrFlick
你可以使用 ggplot (ggplot2) 绘制每个森林图,然后使用 grid.arrange (gridExtra) 将它们绑在一起。 - user20650
是的,需要样本数据。谷歌上也有很多相关内容。这个链接或许可以帮助你入门。 http://mcfromnz.wordpress.com/2012/11/06/forest-plots-in-r-ggplot-with-side-table/ - r.bot
我已经看了一段时间,但是没有一个函数使得这特别容易。 我不得不在函数内部进行修改,但仍然很难使一切都排列整齐。 - MrFlick
我不一定需要使用metafor包,任何能够完成任务的包都可以。谢谢你的尝试,MrFlick。 - user3741672
1个回答

9
这可以让你接近目标:
library(metafor)
data(dat.bcg)
dat <- escalc(measure="RR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg)

par(mfrow=c(1,2))
par(mar=c(5,4,1,1))
forest(dat$yi, dat$vi, annotate=FALSE, cex=.8, at=seq(-3,2,1), digits=1, xlim=c(-6,2))
text(0, 15, "Figure 1", cex=.8, font=2)
par(mar=c(5,3,1,2))
forest(dat$yi, dat$vi, annotate=FALSE, slab=rep("",length(dat$yi)), cex=.8, at=seq(-3,2,1), digits=1, xlim=c(-5,3))
text(0, 15, "Figure 2", cex=.8, font=2)

side-by-side forest plots


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接