【问题标题】:metafor: use of annosym argument in addpoly()metafor:在 addpoly() 中使用 annosym 参数
【发布时间】:2021-12-03 11:31:23
【问题描述】:

我用非默认的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() 中的默认annosyms。

【问题讨论】:

  • 好像我还没有为addpoly() 实现annosym。让我开始吧。

标签: r metafor


【解决方案1】:

不知道为什么我忘记在addpoly.default()addpoly.rma() 中实现annosym,但现在已经添加了。因此,如果您按照此处所述获取metafor 的“开发”版本:

https://github.com/wviechtb/metafor#installation

那么它应该可以工作。

如果您像这样添加多边形,则会出现另一个问题:对齐已关闭,因为与最后一个多边形对应的注释所需的空间更少。您可以使用:

addpoly(res.rand, mlab='Random alloc.', atransf=exp, annosym=c(' (','; ',')'), width=c(5,5,5))

(或者只是width=5)来解决这个问题(注意-0.75由5个字符组成)。对齐方式仍然会稍微偏离,因为默认情况下,文本使用非固定宽度的字体。如果在forest()addpoly() 中将它与fonts="mono" 结合使用,那么对齐将是正确的。您还可以使用默认的固定宽度字体以外的其他字体来使其看起来更漂亮和/或仅使用固定宽度字体进行注释(fonts 可以采用两个值)。

【讨论】:

    猜你喜欢
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多