gpt4 book ai didi

r - 使用 metafor 包将科学记数法中的标签添加到森林图中

转载 作者:行者123 更新时间:2023-12-01 11:17:32 24 4
gpt4 key购买 nike

所以我正在使用 meta.for 进行元分析包裹在 R .我正在准备在科学期刊上发表的数字,我想将 p 值添加到我的森林图中,但科学注释的格式为

x10-04
而不是标准
e-04
然而参数 ilabforest函数不接受 expression类对象,但只有向量

这是一个例子:
library(metafor)
data(dat.bcg)

## REM
res <- rma(ai = tpos, bi = tneg, ci = cpos, di = cneg, data = dat.bcg,
measure = "RR",
slab = paste(author, year, sep = ", "), method = "REML")
# MADE UP PVALUES
set.seed(513)
p.vals <- runif(nrow(dat.bcg), 1e-6,0.02)

# Format pvalues so only those bellow 0.01 are scientifically notated
p.vals <- ifelse(p.vals < 0.01,
format(p.vals,digits = 3,scientific = TRUE,trim = TRUE),
format(round(p.vals, 2), nsmall=2, trim=TRUE))

## Forest plot
forest(res, ilab = p.vals, ilab.xpos = 3, order = "obs", xlab = "Relative Risk")

enter image description here

我希望 p 值的科学记数法格式为
x10-04
我见过的类似问题的所有答案都建议使用 expression()但这给了 Error in cbind(ilab) : cannot create a matrix from type 'expression'这是有道理的,因为 forest 上的帮助文件指定 ilab参数应该是一个向量。

关于如何解决此问题或解决此问题的任何想法?

最佳答案

一个hacky的解决方案是

forest.rma <- edit(forest.rma)

转到第 574 行并更改
## line 574
text(ilab.xpos[l], rows, ilab[, l], pos = ilab.pos[l],


text(ilab.xpos[l], rows, parse(text = ilab[, l]), pos = ilab.pos[l],

修复您的 p 值和绘图
p.vals <- gsub('e(.*)', '~x~10^{"\\1"}', p.vals)
forest(res, ilab = p.vals, ilab.xpos = 3, order = "obs", xlab = "Relative Risk")

enter image description here

关于r - 使用 metafor 包将科学记数法中的标签添加到森林图中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48649648/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com