【问题标题】:Error in eval(expr, envir, enclos) : object 'RM' not foundeval 中的错误(expr、envir、enclos):找不到对象“RM”
【发布时间】: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() 在哪里可以找到RMMEDV 变量。试试`regression
  • 它很奇怪,因为它应该可以工作,但我得到了同样的错误,但现在有一个额外的错误:stats::model.frame(formula = MEDV,data = datos,subset = RM,:object '未找到 MEDV'
  • 你的公式是错误的。 lm(MEDV ~ RM, data = datos)
  • 好的,等我用这些数据完成我的工作后,我会写下答案。再次感谢。

标签: r excel csv


【解决方案1】:

基本上问题在于,由于我首先使用 excel 文件存储我的数据,因此我将变量命名为包含在第一行中,因此当将其传递为 .CSV 格式并尝试在 R 中读取它时,它转换了那些字符作为因素转化为数据。因此,当尝试进行回归时,它不仅有数字值。

之后是 read.csv 中的“dec”参数导致了问题并打印了相同的错误。所以在删除它并输入之后:

datos <- read.csv("datos3.csv")

我可以毫无困难地进行回归,并且可以分析我想要的数据。 (特别感谢@user20650 帮助我)

【讨论】:

    猜你喜欢
    • 2013-10-28
    • 2017-04-02
    • 2015-05-16
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    相关资源
    最近更新 更多