我在課程的上下文中學習R,並收到一條我不明白的錯誤消息。我從一個文件由導師給加載數據得到x
和y
:R說lm.fit想要一個矩陣
> load("7.R.RData")
> ls()
[1] "x" "y"
現在我儘量合身OLS,但失敗:
> lm.fit(y ~ x)
Error in lm.fit(y ~ x) : 'x' must be a matrix
我真的不知道什麼是x
。 class
告訴我,它的「數字」並打印其前十位的值是這樣的:
> class(x)
[1] "numeric"
> x[1:10]
[1] 140.1638 140.4303 140.9321 141.7705 140.0042 141.7460 141.8617 141.1520
天真,我試着轉換x
一個矩陣,但這不會改變任何東西:
> x = matrix(x)
> lm.fit(y ~ x)
Error in lm.fit(y ~ x) : 'x' must be a matrix
谷歌搜索對於這個錯誤消息沒有任何東西。
如果有疑問,請查閱文檔:'help(「lm.fit」)'。順便說一句,'lm.fit(x,y)'不同於'lm(y〜x)'。前者不包括攔截,後者則包含攔截。要包含一個攔截,你需要'lm.fit(cbind(1,x),y)'。 – Roland
@Roland:刪除了'lm.fit'的最後一個註釋,謝謝你的支持。 –