首页 > 解决方案 > R 不会将列名识别为对象

问题描述

我正在尝试构建残差值的直方图,但是我要做的第一步是运行线性模型。R 不会将列名识别为对象。

前三行代码运行良好。后两个给我一个错误,说找不到对象 area_ha,但是,它是我数据中的八个列标题之一。任何关于创建线性模型和直方图来绘制残差的建议也会非常有帮助。

dat<-read.csv("/Users/sara/Desktop/birdsinforest.csv", header=TRUE)
linearmodel=lm(abundance ~ area_ha, data = dat)
summary(linearmodel)
area_ha$abundance_predicted = predict(linearmodel)
area_ha$residual = area_ha$abundance - area_ha$abundance_predicted

This is the error I get after running the last two lines of code:

Error in area_ha$abundance_predicted = predict(linearmodel) : object 'area_ha' not found

标签: r

解决方案


你的代码:

dat<-read.csv("/Users/sara/Desktop/birdsinforest.csv", header=TRUE)
linearmodel=lm(abundance ~ area_ha, data = dat)
summary(linearmodel)
area_ha$abundance_predicted = predict(linearmodel)
area_ha$residual = area_ha$abundance - area_ha$abundance_predicted

在上面的代码中,area_ha似乎是一个变量(列名),而不是data.frame因为您使用它来拟合线性模型。您应该尝试以下最后两行代码:

dat$abundance_predicted <- predict(linearmodel)
dat$residual <- dat$abundance - dat$abundance_predicted

推荐阅读