2013-09-25 47 views
3

我在R上學習一門課,但無法讓教授的代碼工作。我試圖做一個簡單的線性模型,並運行此代碼:lm()命令錯誤:變量的無效類型(列表)

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錯誤),但我特別想知道如何改變它。

我試着將它看作numeric,並將其作爲data.frame,這是大多數其他線程提出的建議,但都不起作用。

+3

請不要在幾個網站上添加相同的問題。你的問題已經在[交叉驗證]上得到了回答(http://stats.stackexchange.com/questions/70990/error-with-lm-common-r-mistake) –

+0

教授們總是錯的。你還沒有學過? :-)(說一個雙師生) –

+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) 

這應該工作

0

比方說,你臭氧數據集包含X(解釋性值)的5,6列,和7.只需將它們保存爲像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)

相關問題