我有一个可能需要很长时间的功能.
我想知道是否有更简洁的方法来阻止功能,除了这样的事情:
repeat{
time1 <- Sys.time()
myfunction(x,y,z,...)
time2 <- Sys.time()
if(time2 - time1 > my.time.limit) {
break
}
}
Run Code Online (Sandbox Code Playgroud)
R.utils包中有一个evalWithTimeout
函数.你可以像这样使用它:
require("R.utils")
evalWithTimeout({
repeat{
myfunction(x,y,z,...)
}
}, timeout=my.time.limit, onTimeout="warning")
Run Code Online (Sandbox Code Playgroud)
运行example(evalWithTimeout)
以查看其他使用方法.