3

我正在上 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 错误),但我太特殊了,不知道如何更改它。

我尝试将其阅读为 anumeric和 a data.frame,这是大多数其他线程所建议的,但都没有奏效。

4

2 回答 2

5

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

这应该工作

于 2013-09-25T08:10:55.903 回答
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).

于 2016-09-22T15:27:06.320 回答