我真的无法弄清楚当我使用predict()
时出现错误的原因。我查了这篇文章,但我仍然得到同样的错误predict()。我将数据框分成两部分(1. Train,2。Test)。
我在火车上运行了一个逻辑模型并将其应用于测试但是我遇到了错误。这是代码:
train=rteam[which(rteam$season!="A"),]
test=rteam[which(rteam$season=="A"),]
length(train$outcome)
#[1] 163478
#ength(test$outcome)
[1] 8246
logit.1=glm(outcome ~ hometeam + dpoints.diff + opoints.diff + outcome.sma5 + opp.outcome.sma5, data=train,
+ family="binomial", na.action=na.exclude)
test$predict=predict(logit.1, data=test, type="response")
# Error in `$<-.data.frame`(`*tmp*`, "predict", value = c(NA, NA, NA, NA, :
# replacement has 163478 rows, data has 8246
我一直收到这个错误。我再次将预测语句作为独立的向量运行,并返回一个具有列车数据帧长度的向量。
predict=predict(logit.1, data=test, type="response")
length(predict)
# [1] 163478
关于发生了什么的任何想法?我的代码错了吗?
解决方案
predict()
需要newdata=
而非data=
,doh!
test$predict=predict(logit.1, newdata=test, type="response")
length(test$predict)
# [1] 8246