我在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错误),但我太特别了解如何改变它。
我尝试将其作为numeric
和data.frame
阅读,这是大多数其他线程建议的,但都没有效果。
答案 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)
而咆哮。