gpt4 book ai didi

r - 我如何避免停止遇到错误的独立r脚本的执行?

转载 作者:行者123 更新时间:2023-12-03 07:40:54 26 4
gpt4 key购买 nike

我正在运行我在多语言框架中编写的优化程序。由于我依靠不同的语言来完成任务,因此所有内容都必须独立,以便可以通过批处理文件启动。在2-3个月的时间里一切都很好,但是当通过独立的R脚本执行的该过程的关键部分之一遇到新内容并给我一条错误消息时,我最终还是运气不佳。尽管我已尽力而为,此错误消息使一切都停止了:

    selMEM<-forward.sel(muskfreq, musk.MEM, adjR2thresh=adjR2)
Procedure stopped (adjR2thresh criteria) adjR2cum = 0.000000 with 0 variables (superior to -0.005810)
Error in forward.sel(muskfreq, musk.MEM, adjR2thresh = adjR2) :
No variables selected. Please change your parameters.

我知道为什么收到此消息:这是警告我,没有任何变量超出我在正向选择过程中要保留的阈值。尽管这不是在数百次运行中发生的,但这没什么大不了的,我只需要告诉R接下来要做什么。这是我迷路的地方。在详尽搜索了几篇文章( such as here)之后,它暗示了try()和tryCatch()是必经之路。所以我尝试了以下方法:
selMEM<-try(forward.sel(muskfreq, musk.MEM, adjR2thresh=adjR2))

if(inherits(selMEM, "try-error")) {
max<-0
cumR2<-0
adjR2<-0
pvalue<-NA
} else {
max<-dim(selMEM)[1]
cumR2<-selMEM$R2Cum[max]
adjR2<-selMEM$AdjR2Cum[max]
pvalue<-selMEM$pval[max]
}

如果我在R中逐行执行有问题的行之后的代码,则可以完美运行,但是当我在命令提示符下将其作为独立脚本执行时,我仍然会收到相同的错误消息,并且整个过程在执行之前都会暂停接下来是什么。

关于如何进行这项工作的任何建议?

最佳答案

请在try帮助中注意这一点:

try is implemented using tryCatch; for programming, instead of try(expr, silent = TRUE), something like tryCatch(expr, error =
function(e) e)
(or other simple error handler functions) may be more efficient and flexible.



查看 tryCatch,可能是:
selMEM  <- tryCatch({
forward.sel(muskfreq, musk.MEM, adjR2thresh=adjR2)
}, error = function(e) {
message(e)
return(NULL)
})

if(is.null(selMEM)) {
max<-0
cumR2<-0
adjR2<-0
pvalue<-NA
} else {
max<-dim(selMEM)[1]
cumR2<-selMEM$R2Cum[max]
adjR2<-selMEM$AdjR2Cum[max]
pvalue<-selMEM$pval[max]
}

关于r - 我如何避免停止遇到错误的独立r脚本的执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21443107/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com