lm()命令出错:变量的类型(列表)无效

时间:2013-09-25 08:04:44

标签: r lm

我在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阅读,这是大多数其他线程建议的,但都没有效果。

2 个答案:

答案 0 :(得分:3)

臭氧表没有臭氧作为变量,因此你的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)

这应该有效

答案 1 :(得分:0)

假设您的臭氧数据集在第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)而咆哮。