我有不同研究[不同暴露]的汇总统计结果[B/se/p]的数据框
创建示例 Dataframe
dat <- data.frame(
Study = rep(c("Study 1", "Study 2", "Study 3", "Study 4", "Study 5"), each = 2),
Stage = rep(c("Discovery", "Replication"), 5),
b = c(0.1, 0.2, 0.15, 0.3, 0.05, 0.1, 0.25, 0.4, 0.08, 0.15),
se = c(0.05, 0.06, 0.07, 0.08, 0.09, 0.06, 0.07, 0.08, 0.1, 0.12))
打印 Dataframe
print(dat)
我想对每对研究进行 meta分析-因此对于“研究1”或“研究2”,对两组结果进行荟萃分析-一个结果是发现,另一个是复制。
我试过:
# Create an empty list to store the meta-analysis results
meta_results <- list()
# Perform meta-analysis for each stage (Discovery and Replication)
for (stage in c("Discovery", "Replication")) {
# Filter the data for the current stage
stage_data <- dat[dat$Stage == stage, ]
# Run the meta-analysis using appropriate functions from the meta package
meta_result <- meta::metagen(
estimate = stage_data$b,
se = stage_data$se,
data = stage_data
)
# Store the meta-analysis result in the list
meta_results[[stage]] <- meta_result
}
# Print the meta-analysis results
print(meta_results)
但是我得到了错误
Error in meta::metagen(estimate = stage_data$b, se = stage_data$se, data = stage_data) :
argument 2 matches multiple formal arguments
因此,我认为我没有正确地指定每个研究的每个阶段都有一组结果。
有人帮忙吗?谢谢!
2条答案
按热度按时间goqiplq21#
您还可以使用
purrr
进行简化,例如efzxgjgh2#
如果检查
?meta::metagen
,您将看到没有estimate
和se
参数。正确的参数名称是TE
和seTE
。结果:
Bonus:错误是什么意思?
R对函数参数有部分匹配。这就是为什么可以使用
seq(1, by = 1, length = 10)
,即使seq
没有length
参数,只有length.out
参数。R已将length
匹配到length.out
。在您的例子中,由于R找不到se
参数,它尝试匹配,但找到了该单词的两个可能匹配项,这就是错误的含义。我建议避免部分匹配。检查此SO问题:Prevent partial argument matching
编辑
改变循环顺序: