【发布时间】:2016-03-24 15:09:25
【问题描述】:
我正在尝试以“正确的方式”做一件事。有时“正确的方法”需要很长时间,具体取决于输入。我真的不知道这会是什么时候。当“正确的方式”花费太长时间时,我想去“hackish方式”。如何让 R 监控特定任务花费了多长时间,并在超过阈值时让它做其他事情?我想这将成为try 家族的一部分,但我不太确定如何称呼它或谷歌。
下面的虚拟示例。当slow.func 耗时过长时,我希望interuptor 停止它并改为调用fast.func。
slow.func <- function(x){
Sys.sleep(x)
print('good morning')
}
fast.func <- function(x){
Sys.sleep(x/10)
print('hit snooze')
}
interuptor = function(FUN,args, time.limit, ALTFUN){
# START MONITORING TIME HERE
do.call(FUN,args)
# IF FUN TAKES TOO LONG, STOP IT, CALL A
do.call(ALTFUN,args)
}
interuptor(slow.func, list(x = 2), time.limit = 1, fast.func)
【问题讨论】:
-
如何添加时间检查?
-
是的,我只是在运行 R。我没有学过任何 C。在这种情况下编写和编译一个简单的 C 程序并使用
.C调用它会很简单吗?
标签: r time error-handling