警告信息' newdata'有一行但找到的变量在R

时间:2016-08-28 19:51:45

标签: r regression linear-regression lm predict

我想使用预测函数来预测fjbjor何时为5.5并且我总是得到这个警告信息而且我已经尝试了很多方法但是总是这样,是否有人能够看到我做错了什么这里

这是我的代码

fit.lm <- lm(fjbjor~amagn, data=bjor)
summary(fit.lm)

new.bjor<- data.frame(fjbjor=5.5)
predict(fit.lm,new.bjor)

这就出来了

 1        2        3        4        5        6        7        8        9       10       11 
5.981287 2.864521 9.988559 5.758661 4.645530 2.419269 4.645530 5.313409 6.871792 3.309773 4.200278 

      12       13       14       15       16 
3.755026 5.981287 5.536035 1.974016 3.755026  
  

警告讯息:&#39; newdata&#39;有一行,但找到的变量有16行

如果有人能看出有什么问题,我会非常感谢你的帮助。

1 个答案:

答案 0 :(得分:2)

您的模型为12 00 00 ,其中fjbjor ~ amagn为响应,fjbjor为协变量。然后,您的amagnnewdata

应该使用

data.frame(fjbjor=5.5)来提供协变量而不是响应。 newdata只会保留predict中的协变量列。对于您指定的newdata,这将是newdata。因此,NULL将使用内部模型框架进行预测,从而返回适合的值。

警告信息非常清楚。 predict确定预期的predict预测数,即1.然后我上面描述的内容发生了16个拟合值。这种不匹配会产生警告。

看起来你真正想要的模型是:nrow(newdata)