metafor:在 addpoly() 中使用 annosym 参数
metafor: use of annosym argument in addpoly()
我用非默认 annosym
值绘制了一个森林图:
res <- rma(ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg, measure = 'OR', method='DL',
slab=paste(author, year))
forest(res,
annosym=c(' (','; ',')'),
ylim=c(-2,16)
)
并尝试添加一些具有相同annosym
规格的子分析结果:
dat.bcg.rand <- dat.bcg[dat.bcg$alloc=='random',]
res.rand <- rma.uni(ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg.rand, measure = 'OR', method='DL',
slab=paste(author, year))
addpoly(res.rand, mlab='Random alloc.',atransf=exp, annosym=c(' (','; ',')'))
看到警告:
Warning messages:
1: In text.default(...) : "annosym" is not a graphical parameter
2: In segments(...) : "annosym" is not a graphical parameter
3: In segments(...) : "annosym" is not a graphical parameter
4: In segments(...) : "annosym" is not a graphical parameter
5: In polygon(...) : "annosym" is not a graphical parameter
6: In text.default(...) : "annosym" is not a graphical parameter
和混合两个 annosym
规格的图:
您对此有任何解决方法吗?我真的,真的需要更改 addpoly()
.
中的默认 annosym
s
不知道为什么我忘记在 addpoly.default()
和 addpoly.rma()
中实现 annosym
,但现在已经添加了。因此,如果您按照此处所述获取 metafor
的 'development' 版本:
https://github.com/wviechtb/metafor#installation
那么应该可以了。
另一个问题,如果你像这样添加多边形:对齐关闭,因为与最后一个多边形对应的注释需要较少 space。您可以使用:
addpoly(res.rand, mlab='Random alloc.', atransf=exp, annosym=c(' (','; ',')'), width=c(5,5,5))
(或只是 width=5
)来解决这个问题(注意 -0.75
由 5 个字符组成)。对齐仍然会稍微偏离,因为默认情况下文本使用的是非固定宽度的字体。如果在 forest()
和 addpoly()
中将其与 fonts="mono"
组合,则对齐将是正确的。您还可以使用默认固定宽度字体以外的其他字体来使它看起来更好and/or 注释仅使用固定宽度字体(fonts
可以采用两个值)。
我用非默认 annosym
值绘制了一个森林图:
res <- rma(ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg, measure = 'OR', method='DL',
slab=paste(author, year))
forest(res,
annosym=c(' (','; ',')'),
ylim=c(-2,16)
)
并尝试添加一些具有相同annosym
规格的子分析结果:
dat.bcg.rand <- dat.bcg[dat.bcg$alloc=='random',]
res.rand <- rma.uni(ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg.rand, measure = 'OR', method='DL',
slab=paste(author, year))
addpoly(res.rand, mlab='Random alloc.',atransf=exp, annosym=c(' (','; ',')'))
看到警告:
Warning messages:
1: In text.default(...) : "annosym" is not a graphical parameter
2: In segments(...) : "annosym" is not a graphical parameter
3: In segments(...) : "annosym" is not a graphical parameter
4: In segments(...) : "annosym" is not a graphical parameter
5: In polygon(...) : "annosym" is not a graphical parameter
6: In text.default(...) : "annosym" is not a graphical parameter
和混合两个 annosym
规格的图:
您对此有任何解决方法吗?我真的,真的需要更改 addpoly()
.
annosym
s
不知道为什么我忘记在 addpoly.default()
和 addpoly.rma()
中实现 annosym
,但现在已经添加了。因此,如果您按照此处所述获取 metafor
的 'development' 版本:
https://github.com/wviechtb/metafor#installation
那么应该可以了。
另一个问题,如果你像这样添加多边形:对齐关闭,因为与最后一个多边形对应的注释需要较少 space。您可以使用:
addpoly(res.rand, mlab='Random alloc.', atransf=exp, annosym=c(' (','; ',')'), width=c(5,5,5))
(或只是 width=5
)来解决这个问题(注意 -0.75
由 5 个字符组成)。对齐仍然会稍微偏离,因为默认情况下文本使用的是非固定宽度的字体。如果在 forest()
和 addpoly()
中将其与 fonts="mono"
组合,则对齐将是正确的。您还可以使用默认固定宽度字体以外的其他字体来使它看起来更好and/or 注释仅使用固定宽度字体(fonts
可以采用两个值)。