如何使用 R 中的 rma 函数对两个不同变量的效应大小进行加权?
How to weight effect sizes with two different variables using the rma function in R?
我目前正在使用 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()
不能为您执行此操作)。
我目前正在使用 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()
不能为您执行此操作)。