R语言线性回归报错:object 'MEDV' not found问题求助
问题原因
- 核心错误是你构建
train.df时筛选的字段不包含MEDV列:你定义的selected.var <- c(1, 4, 6)只选择了数据集的第1、4、6列,而波士顿房价数据集中目标变量MEDV(房屋均价)默认是第14列,没有被纳入train.df中,所以lm()调用时找不到作为因变量的MEDV对象,直接触发了当前报错。 - 额外注意:你的代码里存在多处注释和逻辑不匹配的地方,比如注释提到"1000 random sample"但实际你只取了前500行数据,不过这部分不触发当前报错,后续调整注释即可。
解决方案
- 首先确认
MEDV对应的列位置,运行如下代码查看数据集所有列名和顺序:
colnames(housing.df)
- 把
MEDV对应的列号加入到selected.var的列表中,比如确认MEDV是第14列的话,修改代码为:
# 前三个是你原来选择的自变量,最后一个是目标变量MEDV的列号 selected.var <- c(1, 4, 6, 14)
- 修改后重新运行构建
train.df和valid.df的代码,可先执行colnames(train.df)确认列表中已经包含MEDV,再运行线性回归代码即可正常运行。
内容的提问来源于stack exchange,提问作者SSJ5Broli
相关产品推荐
相关产品推荐

