【发布时间】:2015-05-14 05:32:23
【问题描述】:
使用 R 中的“stackloss”数据,我创建了一个回归模型,如下所示:
stackloss.lm = lm(stack.loss ~ Air.Flow + Water.Temp + Acid.Conc.,data=stackloss)
stackloss.lm
newdata = data.frame(Air.Flow=stackloss$Air.Flow, Water.Temp= stackloss$Water.Temp, Acid.Conc.=stackloss$Acid.Conc.)
假设我得到一个新数据集,需要根据之前的模型预测其“stack.loss”,如下所示:
#suppose I need to used my model on a new set of data
stackloss$predict1[-1] <- predict(stackloss.lm, newdata)
我收到此错误:
Error in `$<-.data.frame`(`*tmp*`, "predict1", value = numeric(0)) :
replacement has 0 rows, data has 21
他们是否可以在具有相同列但不同行的不同数据集上使用预测函数?
提前致谢。
【问题讨论】:
-
这只是一个例子,就像
stackloss$predict1[-1]它是具有不同行数的新数据集。我需要使用我的原始模型来预测新数据集的y,看看它是否准确。例如,我创建了一个模型来查看汽车保险的价格,我的模型将被公司用于所有汽车,因此我需要在多个数据集上使用我的模型。 -
stackloss2 <- stackloss[-1,]stackloss2["predict1"] <- NULLstackloss2$predict1 <- predict(stackloss.lm, newdata) -
错误表示行数不匹配。我需要在具有不同行数的不同数据集上使用预测函数。
-
我的意思是
stackloss$predict1[-1],因为我试图在数据集中使用预测来处理不同的行。
标签: r regression predict