当我使用 predict() 时,我真的可以't figure out why I'收到错误 . 我查了这篇文章,但我仍然得到同样的错误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

关于发生了什么的任何想法?我的代码错了吗?

Solution

predict() 需要 newdata= 而不是 data= ,doh!

test$predict=predict(logit.1, newdata=test, type="response")
length(test$predict)
# [1] 8246