R中的随机森林:训练数据中不存在新的因子水平-问题出在哪一列?

R中的随机森林:训练数据中不存在新的因子水平-问题出在哪一列?,r,data-science,random-forest,predict,levels,R,Data Science,Random Forest,Predict,Levels,我有一个73列的数据集,几乎所有的列都是因子。我试图找出他们中的哪一个导致了这个错误,但我没有主意。 多亏了这里的其他问题,我能够编写一个循环来比较级别,并在需要时修复它们,但没有区别。这里还有其他人知道吗 这是我的循环,以确保级别正确: for(factor_var in factor_vars) { if (isFALSE(all.equal(levels(test[[factor_var]]), levels(train[[factor_var]])))) { print(pa

我有一个73列的数据集,几乎所有的列都是因子。我试图找出他们中的哪一个导致了这个错误,但我没有主意。 多亏了这里的其他问题,我能够编写一个循环来比较级别,并在需要时修复它们,但没有区别。这里还有其他人知道吗

这是我的循环,以确保级别正确:

for(factor_var in factor_vars) {
  if (isFALSE(all.equal(levels(test[[factor_var]]), levels(train[[factor_var]])))) {
    print(paste('problem in:', factor_var))
    test[[factor_var]] <- factor(test[[factor_var]], levels = levels(train[[factor_var]]))
  } else {
    print(paste('ok:', factor_var))
  }
}
for(因子变量中的因子变量){
如果(isFALSE(全部相等)(水平(测试[[factor_var]]),水平(训练[[factor_var]])){
打印(粘贴('problem in:',factor_var))

test[[factor_var]@StupidWolf你说“我不能做等级”是什么意思?好吧,我知道等级是继承的,但是液滴等级如何帮助我?做液滴等级(test);液滴等级(train);然后sapply(colnames(train),function(I)等级(train[[I]])==等级(test[[I]])我只是想知道这对我有什么帮助。根据错误消息,问题是级别不一样。我的尝试是基于这样的回答:它似乎不起作用。你当然可以将级别设置为与帖子中相同的级别,但这就像把一切都隐藏起来一样。我认为这不会解决问题e、 嗯…我找到了专栏,但我仍然得到了同样的错误。我比较了水平,他们是相同的。我真的不明白为什么他们不是。我文学地将他们与所有人进行比较。相等。
> yhat$rf <- predict(modelLib$rf, newdata = test)
Error in predict.randomForest(.model$learner.model, newdata = .newdata,  : 
  New factor levels not present in the training data