在r中翻转x轴以获得森林图

时间:2017-04-05 18:35:28

标签: r statistics forestplot

我使用带有以下代码的metafor包在r中创建了一个foresplot:

res <- metafor::rma(cohens_d, variance, data = my_data)


par(mar=c(3.4,0,0,0))
par(cex=2.5, font=4)
metafor::forest.rma(res, alim=c(-3.75, 3.75), xlab = "Cohen's D with 95% CI", 
                slab = my_data$Paper)

给我的图像: forestplot

我想翻转x轴,意思是右边有负数。关于如何做到这一点的任何想法?

谢谢!

2 个答案:

答案 0 :(得分:1)

好吧,这是一个非常荒谬的黑客,但它确实有效。基本上,您必须绘制两次绘图,一次添加点(带反转符号),一次添加注释(没有反转符号)。

library(metafor)

dat <- get(data(dat.bcg))
dat <- escalc(measure="RR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg)
res <- rma(yi, vi, data=dat)

### default plot
forest(res, xlim=c(-8,8))

### trick into reverse x-axis
forest(res, xaxt="n", transf=function(x) -1*x, annotate=FALSE, xlim=c(-8,8), xlab="Log Relative Risk")
axis(side=1, at=seq(-3, 3, 1), labels=seq(3,-3,-1))
par(new=TRUE)
forest(res, xaxt="n", xlim=c(-8,8), col="white", border="white", pch=NA, lty="blank", efac=NA, xlab="", slab=NA, mlab=NA)
par(new=FALSE)

答案 1 :(得分:0)

我只是在绘制之前翻转模型的估计系数( b 类的 b 组件):

res <- metafor::rma(cohens_d, variance, data = my_data)
res$b <- -res$b