【问题标题】:Error with lm() command: invalid type (list) for variablelm() 命令出错:变量的类型(列表)无效
【发布时间】:2013-09-25 08:04:44
【问题描述】:

我正在学习关于 R 的课程,但我无法让教授的代码正常工作。我正在尝试做一个简单的线性模型并运行以下代码:

ozone <- read.table(
    "http://www.ats.ucla.edu/stat/r/faq/ozone.csv",
    sep = ",",
    header = TRUE
)

fit = lm(ozone ~ ., data = ozone)
summary(fit)

这一直给我以下错误:

model.frame.default 中的错误(公式 = 臭氧 ~ .,数据 = 臭氧,drop.unused.levels = TRUE):变量“臭氧”的类型(列表)无效

这真的很令人沮丧,因为它们是他讲义中的前两行代码。我还发现了其他几个关于这个主题的论坛帖子(它甚至被列为常见的 R 错误),但我太特殊了,不知道如何更改它。

我尝试将其阅读为 numericdata.frame,这是大多数其他线程所建议的,但均未奏效。

【问题讨论】:

  • 请不要在多个网站上添加相同的问题。您的问题已在Cross Validated 上得到解答
  • 教授总是错的。你还没学会? :-) (一个双师小子说)
  • 这是一个疯狂的想法:问教授。

标签: r lm


【解决方案1】:

臭氧表没有臭氧作为变量,因此您的 lm 函数会失败

ozone<-read.table("http://www.ats.ucla.edu/stat/r/faq/ozone.csv", sep=",", header=T)
fit = lm(Av8top ~.,data=as.data.frame(ozone))
summary(fit)

这应该可以工作

【讨论】:

    【解决方案2】:

    假设您的臭氧数据集在第 5,6 和 7 列中包含 X(解释值)。只需将它们保存为矩阵数据类型,如 ozone.X = as.matrix(cbind(ozone[5],ozone[6],ozone[7]))。对您的 Y 列执行相同的操作。如果它在臭氧的第 2 列,请执行ozone.Y = as.matrix(ozone[2])。现在你可以运行你的lm 函数,而不会出现类型错误lm(ozone.Y ~ ozone.X)

    【讨论】:

      猜你喜欢
      • 2018-04-18
      • 2016-05-15
      • 2015-03-19
      • 2014-10-19
      • 1970-01-01
      • 2018-01-20
      • 2019-07-07
      • 1970-01-01
      相关资源
      最近更新 更多