R:model.frame.default中的错误(form =变量长度不同(找到' excel')

时间:2018-02-16 17:54:43

标签: r dataframe machine-learning r-caret

我正在使用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')

我无法分享数据和所有代码,我认为它很大而且不需要。

1 个答案:

答案 0 :(得分:0)

尝试向上游查看您是否附有数据。