什么是Excel IFERROR的R等价物?

我正在尝试把IFERROR条件放在像Excel IFERROR函数那样的R中。 我正在build立一个随机森林模型。 为了微调,我使用了tuneRF函数。 它有助于给出最佳的参数。

#Selecting Optimal MTRY parameter mtry <- tuneRF(dat3[, -36], dat3[,36], ntreeTry=1000, stepFactor=1.5,improve=0.01, trace=TRUE, plot=TRUE) best.m <- mtry[mtry[, 2] == min(mtry[, 2]), 1] 

有时候,如果在不同的迭代中OOB错误不会得到改善,上面的函数会返回错误。

错误if(改进>改进){:缺less值,其中TRUE / FALSE需要。

下一步:如果上面的函数工作正常,我在下面的代码中使用best.m的值。

tuneRF函数中没有错误 – 运行下面的代码。

 rf <-randomForest(classe~.,data=dat3, mtry=best.m, importance=TRUE,ntree=1000) 

tuneRF函数中的错误 – 运行下面的代码。

 #Train Random Forest rf <-randomForest(classe~.,data=dat3, importance=TRUE,ntree=1000) 

感谢预期! 任何帮助将不胜感激。

您需要使用trytryCatch 。 这应该工作:

 mtry <- try(tuneRF(dat3[, -36], dat3[,36], ntreeTry=1000, stepFactor=1.5,improve=0.01, trace=TRUE, plot=TRUE)) if (!inherits(mtry, "try-error")) { best.m <- mtry[mtry[, 2] == min(mtry[, 2]), 1] rf <- randomForest(classe~.,data=dat3, mtry=best.m, importance=TRUE,ntree=1000) } else { rf <- randomForest(classe~.,data=dat3, importance=TRUE,ntree=1000) } 

但是,给出的错误可能代表了tuneRF函数中的错误。 你能给一个可重复的例子,即用一个最小的数据集,会产生错误?