我一直在尝试使用因子变量作为模型中的单个调节变量在R中运行元回归。虽然我可以使用meta和metafor这样的程序包来运行模型,但是这些程序包都没有选择将轮廓似然性作为tau ^ 2估计量而不是REML或DL的选项。软件包metaplus是专门为此目的而设计的,但是我似乎无法使其与因子变量一起运行。以下是一些示例数据:
trial author year tpos tneg cpos cneg ablat alloc yi vi
1 Aronson 1948 4 119 11 128 44 random -0.8893 0.3256
2 Ferguson 1949 6 300 29 274 55 random -1.5854 0.1946
3 Rosenthal 1960 3 228 11 209 42 random -1.3481 0.4154
4 Hart 1977 62 13536 248 12619 52 random -1.4416 0.0200
5 Frimodt 1973 33 5036 47 5761 13 alternate -0.2175 0.0512
6 Stein 1953 180 1361 372 1079 44 alternate -0.7861 0.0069
7 Vandiviere 1973 8 2537 10 619 19 random -1.6209 0.2230
8 TPT Madras 1980 505 87886 499 87892 13 random 0.0120 0.0040
9 Coetzee 1968 29 7470 45 7232 27 random -0.4694 0.0564
10 Rosenthal 1961 17 1699 65 1600 42 systematic -1.3713 0.0730
11 Comstock 1974 186 50448 141 27197 18 systematic -0.3394 0.0124
12 Comstock 1969 5 2493 3 2338 33 systematic 0.4459 0.5325
13 Comstock 1976 27 16886 29 17825 33 systematic -0.0173 0.0714
yi =摘要效应(均值差); vi =效果摘要的差异
我想运行带有分配的元回归作为主持人。在其他尝试中,这是我尝试使用的最直接的代码:
res <- metaplus(yi, vi, mods =~ factor(alloc), slab = trial, data = dat)
以下是我收到的错误消息:
Error in rma(yi = yi, sei = sei, mods = as.data.frame(mods), method = "DL") :
Model matrix contains character variables.
和
Error in as.data.frame.default(mods) :
cannot coerce class ‘"formula"’ to a data.frame
我已经搜索了堆栈溢出并进行了交叉验证,但无法找到解决方案。我真的很感谢对此的一些建议。
谢谢。