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

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)

我不断遇到以下错误:

Error in model.frame.default(formula = ozone ~ ., data = ozone, drop.unused.levels = TRUE) : invalid type (list) for variable 'ozone'

这真的很令人沮丧,因为这是他讲义中的前两行。我还发现了其他几个论坛帖子谈到了这个问题(它甚至被列为常见的R错误),但是我太笨了,不知道该如何改变它。

我尝试过将其读取为numericdata.frame,这是大多数其他帖子建议的,但都没有成功。


3
请勿在多个网站上重复提问。你的问题已经在 Cross Validated 上得到了回答。请注意这是一个常见的 R 错误。 - Didzis Elferts
教授们总是错的。你还没学会这点吗? :-) (一个双重教职子弟说) - Carl Witthoft
这是一个疯狂的想法:问教授。 - Rich Scriven
2个回答

5
致命问题:ozone表中没有“ozone”这个变量,因此您的线性模型函数将失败。
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)

这应该可以正常工作


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(ozone.Y ~ ozone.X)函数而不会出现类型错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接