如何使用 R 中的 rma 函数对两个不同变量的影响大小进行加权?

如何解决如何使用 R 中的 rma 函数对两个不同变量的影响大小进行加权?

我目前正在使用 R 中的 Metafor 包进行元分析。 我的数据集看起来像这样:

df <- structure(list(Code = c("grace2014","grace2014","jonhson2017","van2016","wolf2020","jessen2020","jessen2020"),ES = c(0.45,0.8,0.62,NA,0.72,0.76,0.13,0.02,-0.05,0.12,0.19,0.02
),VAR = c(0.0415,0.0465,0.5058,0.0025,0.5705,1e-04,2e-04,0.001,2e-04),N = c(99,100,1050,31,247,293,31570,31571,31572,31577,31578,31581),QATSDD = c(58.33333333,58.33333333,59.52380952,76.19047619,38.0952381,83.33333333,83.33333333)),row.names = c(NA,-12L),class = c("tbl_df","tbl","data.frame"))

我试过这个代码

ma_model <- rma(data = df,yi =  ES,vi = VAR,weights = c(N,QATSDD),weighted = TRUE,slab = Code)
forest(ma_model)

但是这个错误代码返回给我

Error in rma: 
  Length of 'yi' and 'weights' is not the same.

我还尝试使用 cbind() 创建一个包含 N 和 QATSDD 的矩阵,但仍然出现相同的错误

...我在某处读到 weights 参数可能是一个矩阵,但现在我严重怀疑这一点。 有人可以帮我吗?

解决方法

rma() 中,weights 参数(如果指定)必须是长度与模型中包含的估计值数量相同的向量。

您可能会想到 W 函数中的 rma.mv() 参数,它可以是一个矩阵,但不是您想的那样(它必须是一个具有相同数字的矩阵)行和列数作为模型中包含的估计数)。

您显然试图指定权重,这些权重是样本大小和 QATSDD 比例值的某种组合。您必须自己指定如何将这两组值组合为每个研究的单个值(即,rma() 不能为您这样做)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?