使用R语言mediate包时遇“未定义列选中”错误的求助
解决mediate包的"undefined columns selected"错误
错误核心原因
你犯了中介分析的基础错误:结果模型(out.fit)必须同时包含处理变量(condition)和中介变量(arousal),但你当前的out.fit只纳入了arousal,没有加入condition,这才导致程序找不到指定的treat列。
另外你的猜测有误:condition是取值-1/1的数值型变量,不是分类因子,所以lm()输出的系数名本来就是condition,不需要手动重命名。
修正后的代码
# 中介模型:M ~ X med.fit <- lm(arousal ~ condition, data=data) # 结果模型:Y ~ X + M(必须同时包含处理变量和中介变量) out.fit <- glm(answer ~ condition + arousal, family = binomial, data=data) # 运行中介分析 med.out <- mediate(med.fit, out.fit, treat = "condition", mediator = "arousal")
验证步骤(可选)
运行前可以先确认两个模型的变量是否正确:
# 查看中介模型的变量 names(med.fit$model) # 查看结果模型的变量 names(out.fit$model)
两个模型里都应该包含condition,结果模型还需要包含arousal。
内容的提问来源于stack exchange,提问作者held.together.by.magic
相关产品推荐
相关产品推荐

