You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中介分析报错:undefined columns selected问题求助

问题原因

你构建线性模型时用了df$BoroughPopulation这种写法,导致lm模型内部记录的变量名是带df$前缀的,而非原始列名BoroughPopulation。mediate函数要求模型中的变量名和data参数里的列名完全匹配,因此找不到对应列才报错。

修正方案

重构所有lm模型,直接使用变量名(不带df$),并通过data参数指定数据集,确保模型内变量名与data中的列名一致。

修正后的完整代码
# 若未安装mediation包,先运行install.packages("mediation")
library(mediation)

# 模型1:用BoroughPopulation预测PM25PWACugm3
model1 <- lm(PM25PWACugm3 ~ BoroughPopulation, data = df)

# 模型2:用PM25PWACugm3预测Baselinedeaths
model2 <- lm(Baselinedeaths ~ PM25PWACugm3, data = df)

# 模型3:用BoroughPopulation和PM25PWACugm3共同预测Baselinedeaths
model3 <- lm(Baselinedeaths ~ BoroughPopulation + PM25PWACugm3, data = df)

# 调用mediate函数,此时变量名完全匹配
mediate_result <- mediate(model1, model2, model3, 
                         treat = "BoroughPopulation", 
                         mediator = "PM25PWACugm3", 
                         data = df)

# 查看中介分析结果
summary(mediate_result)
补充说明
  • lm(变量~变量, data=df)是R构建模型的标准写法,既能避免变量名匹配问题,代码也更简洁易读。
  • 运行summary(mediate_result)后,可查看中介效应的估计值、置信区间及显著性检验结果,判断中介效应是否显著。

内容的提问来源于stack exchange,提问作者katehasnoidea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 06:30:50