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



我目前正在使用R中的metafor包进行荟萃分析。我的数据集是这样的:

df <- structure(list(Code = c("grace2014", "grace2014", "jonhson2017", 
"van2016", "wolf2020", "wolf2020", "jessen2020", "jessen2020", 
"jessen2020", "jessen2020", "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, NA, 0.0025, 0.5705, 1e-04, 
2e-04, 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, 38.0952381, 
83.33333333, 83.33333333, 83.33333333, 83.33333333, 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参数(如果指定(必须是与模型中包含的估计数长度相同的向量。

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

显然,您试图指定的权重是样本大小和QATSDD标度值的某种组合。您必须指定如何在每次研究中将这两组值组合为一个值(即rma()不能为您做到这一点(。

相关内容

  • 没有找到相关文章

最新更新