我真的无法弄清楚为什么我在使用predict()
. 我检查了这篇文章,但我仍然收到相同的错误predict()。我将一个数据框分成两部分(1. 训练,2. 测试)。
我在火车上运行了一个逻辑模型并将其应用于测试,但出现错误。这是代码:
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 语句作为独立向量运行,它返回了一个长度为 train 数据帧的向量。
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