什么是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)
感谢预期! 任何帮助将不胜感激。
您需要使用try
或tryCatch
。 这应该工作:
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
函数中的错误。 你能给一个可重复的例子,即用一个最小的数据集,会产生错误?