我在课程的上下文中学习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'的最后一个注释,谢谢你的支持。 –