我正在使用metafor包进行元分析。我想在使用包时计算效果大小,但遇到了一些麻烦。我正在尝试使用escalc函数来计算效果大小。我有一个包含大约200行数据的文件,其中包含有关控制/测试均值方差和样本数量的数据。对于每一行,我想计算效果大小。现在,我想使用escalc函数来确定使用SMD的效果大小。
我当前的代码如下:
# escalc function
escalc <- function(measure, ai, bi, ci, di, n1i, n2i, x1i, x2i, t1i, t2i, m1i, m2i, sd1i, sd2i, xi, mi, ri, ti, sdi, r2i, ni, yi, vi, sei,
data, slab, subset, include, add=1/2, to="only0", drop00=FALSE, vtype="LS", var.names=c("yi","vi"), add.measure=FALSE, append=TRUE, replace=TRUE, digits, ...)
# apply data and add effect size col to data frame
data$ES <- escalc(measure = SMD, dat$MRE1, dat$MTE2, dat$VRE1, dat$VTE2, dat$NR1, dat$NR2, data = dat)当我运行这段代码一次似乎没有问题/错误(如果我多次运行代码,它显示“错误:C堆栈使用15925888太接近限制”-不确定这是什么意思),但我的数据帧没有包含每个研究的ES的新列。当我突出显示新变量并按enter键(查看数据)时,它显示为NULL,所以我认为它实际上并没有运行。如何获取效果大小的汇总信息?
我不确定我做错了什么,也不知道如何查看我计算出的效果大小。我一直在阅读metafor文档,但不确定我做错了什么(https://cran.r-project.org/web/packages/metafor/metafor.pdf)。我需要为每篇论文计算escalc吗?任何帮助都是非常感谢的。
谢谢!
发布于 2021-03-26 15:32:36
您应该使用:
dat <- escalc(measure="SMD", m1i=MRE1, m2i=MTE2, sd1i=sqrt(VRE1), sd2i=sqrt(VTE2), n1i=NR1, n2i=NR2, data=dat)注意,SDs是参数sd1i和sd2i的输入,所以如果有方差,我们需要取它们的平方根。
https://stackoverflow.com/questions/66787283
复制相似问题