我正在使用for循环,我需要预测多个列并同时存储它们。
cols是一个包含我需要预测的所有列的向量,mat是data.frame(基本上是我的文本功能)。
df是包含文本和预测列的主数据框。
for (colm in cols){
label <- as.factor(df[[colm]])
dfm <- mat
dfm[[colm]] <- label
#Boruta(as.factor(colm)~., data=dfm, pValue = 0.01, mcAdj = TRUE, maxRuns = 20,
# doTrace = 2, holdHistory = TRUE, getImp = getImpRfZ) -> Bor.rf
#dfm <- as.data.frame(as.matrix(dfm[,getSelectedAttributes(Bor.rf)]))
#dfm[[colm]] <- label
#train the RF model
modelRF.bor <- train(colm~., data=dfm, method="rf", trControl=control)
pred.RF.bor = predict(modelRF.bor, newdata = dfm[ ,!(colnames(dfm) == st(colm))])
print("Predictions for Column")
print(colm)
print(pred.RF.bor)
table(pred.RF.bor,dfm$colm)
acc.RF.bor = mean(pred.RF.bor==dfm$colm)
print("Accuracy ")
print(acc.RF.bor)
print("Confusion Matrix")
print(confusionMatrix(table(pred.RF.bor,dfm$colm)))
output[,i] <- pred.RF.bor
i = i+1
}
我收到此错误,并检查了我的代码中的所有内容,以及此处的类似问题。
Error in model.frame.default(form = colm ~ ., data = dfm, na.action = na.fail) :
variable lengths differ (found for 'excel')
我无法分享数据和所有代码,我认为它很大而且不需要。
答案 0 :(得分:0)
尝试向上游查看您是否附有数据。