我在 R 包中使用forest.rma
metafor
.我想使用 xlim
参数来指定绘图的宽度。但是,当其中一个 x 值超出该范围时,这会被覆盖。下面是两个示例:
library(metafor)
par(mfrow=c(2,1))
rmaObject <- rma.uni(yi=c(1.3, -16), sei=c(0.8, 0.7))
forest(rmaObject, atransf=exp, xlim=c(-5,12), alim=c(-5,12))$xlim
forest(rmaObject, atransf=exp, xlim=c(-5,12))$xlim
在这两种情况下,我认为函数应该按照我的指示使用xlim=c(-5,12)
并为第二个柱线绘制一个左箭头,以表明整个条形图位于图的左侧之外。但是正如控制台输出所示,第一个将xlim
设置为c(-16,12)
,第二个将其设置为c(-20,12)
。
换句话说,forest
强制xlim
完全包含两个柱线,但我认为如果我指定xlim
,尤其是如果我也指定alim
,它不应该这样做。有没有简单的方法可以解决这个问题?
这个例子中的数字是真实的,尽管我省略了我的大部分研究(即yi
和sei
的值),这些研究大多在0或1的范围内。
您可以按照如下所述安装 metafor
的开发版本:
http://www.metafor-project.org/doku.php/installation#development_version
它更好地处理了这个问题。它仍然迫使xlim
包含yi
值,但不再是alim
。底部的摘要多边形看起来仍然像废话(我没有内置任何代码来切断alim
值处的多边形形状 - 并不像看起来那么微不足道),但是一旦您添加其余的研究,这可能不是问题。