【发布时间】:2015-11-14 16:12:47
【问题描述】:
我正在尝试通过调用一个 .CSV 文件来进行简单的线性回归,其中我有 14 个不同的变量...首先在 Excel 文件中。 在 Excel 中,我只是通过在数据上方加上一个名称来命名变量,但我并不认为这意味着用该变量命名整个列。 (当然我首先从 R 调用 .CSV 文件:
> datos<-read.table("datos3.csv",header=T,sep=";",dec=",")
所以这就是为什么我在 R 中按名称称呼他们的原因:
regresion<-lm(RM~MEDV)
R says: Error in eval(expr, envir, enclos) : object 'RM' not found
我觉得奇怪的是,当我更改变量的顺序(比如 MEDV~RM)时,我得到了同样的错误,但说这次没有找到 MEDV。是因为它首先读取和检测到的东西吗?
有没有一种方法可以从 Excel 或 R 中让我为变量命名以便调用它们而不会出错,或者问题是否在其他地方?
更新代码
rm(list=ls())
datos<-read.table("datos3.CSV",header=T,sep=";",dec=",")
View(datos)
regresion<-lm(MEDV,RM,data=datos)
在这之后我得到了
Error in stats::model.frame(formula = MEDV, data = datos, subset = RM, :
object 'MEDV' not found
【问题讨论】:
-
您在
lm中缺少data=datos参数。否则,lm找不到变量。 -
您必须告诉
lm()在哪里可以找到RM和MEDV变量。试试`regression -
它很奇怪,因为它应该可以工作,但我得到了同样的错误,但现在有一个额外的错误:stats::model.frame(formula = MEDV,data = datos,subset = RM,:object '未找到 MEDV'
-
你的公式是错误的。
lm(MEDV ~ RM, data = datos) -
好的,等我用这些数据完成我的工作后,我会写下答案。再次感谢。