我在一个名为 petrol
的data.frame中获得了数据,该数据包含125行和以下列:hydrcarb
, tanktemp
, disptemp
, tankpres
, disppres
, sqrtankpres
, sqrdisppres
我被要求删除 petrol
中的最后25行,适合模型,其中 hydrcarb
是响应变量,其余是解释变量,并且对前100行执行此操作 . 然后使用拟合模型预测剩余的25个 .
这是我到目前为止所做的:
#make a new table that only contains first 100
petrold <- petrol[-101:-125,]
petrold
#FITTING THE MODEL
petrol.lmB <- lm(hydrcarb~ tanktemp + disptemp + tankpres + disppres + sqrtankpres + sqrdisppres, data=petrol)
#SELECT LAST 25 ROWS FROM PETROL
last25rows <-petrol[101:125,c('tanktemp','disptemp','tankpres','disppres','sqrtankpres','sqrdisppres')]
#PREDICT LAST 25 ROWS
predict(petrold,last25rows[101,c('tanktemp','disptemp','tankpres','disppres','sqrtankpres','sqrdisppres')])
我知道我为 predict
命令做错了,因为R给了我错误信息:
Error in UseMethod("predict") :
no applicable method for 'predict' applied to an object of class "data.frame"
所以我不知道如何获得25个不同数据集的 hydrcarb
的预测值 .
1 回答
Alex A.已经指出
predict
期望一个模型作为第一个参数 . 除此之外,您应该立即传递predict
您想要预测的所有行 . 此外,我建议您对数据框"on-the-fly"进行子集化,而不是创建不必要的副本 . 最后,有一个更短的方法来编写传递给lm
的fromula: