r插入符号预测返回的输出少于输入

Ric*_*cky 5 r rpart r-caret

caret以前训练过一个rpart模型.

trainIndex <- createDataPartition(d$Happiness, p=.8, list=FALSE)
dtrain <- d[trainIndex, ]
dtest <- d[-trainIndex, ]
fitControl <- trainControl(## 10-fold CV
  method = "repeatedcv", number=10, repeats=10)
fitRpart <- train(Happiness ~ ., data=dtrain, method="rpart",
                trControl = fitControl)
testRpart <- predict(fitRpart, newdata=dtest)
Run Code Online (Sandbox Code Playgroud)

dtest包含1296个观测值,所以我希望testRpart产生一个长度为1296的向量.相反,它长1077,即219短.

当我在前220行上运行预测时dtest,我得到的预测结果为1,因此它始终为219短.

有关为什么会出现这种情况的任何解释,以及我可以做些什么来获得输入的一致输出?

编辑: d可以从这里加载以重现上述内容.

Jos*_* W. 12

我下载了您的数据并找到了解释差异的原因.

如果只是从数据集中删除缺失值,则输出的长度匹配:

testRpart <- predict(fitRpart, newdata = na.omit(dtest))
Run Code Online (Sandbox Code Playgroud)

注意nrow(na.omit(dtest))是1103,并且length(testRpart)是1103.因此,您需要一种策略来解决缺失值.请参阅?predict.rpartna.action参数的选项以选择所需内容.