我的功能可能需要相当长的时间。
我想知道是否有更简洁的方法来阻止这个功能,而不是像这样:
repeat{
time1 <- Sys.time()
myfunction(x,y,z,...)
time2 <- Sys.time()
if(time2 - time1 > my.time.limit) {
break
}
}
答案 0 :(得分:6)
R.utils 包中有evalWithTimeout
个功能。您可以像这样使用它:
require("R.utils")
evalWithTimeout({
repeat{
myfunction(x,y,z,...)
}
}, timeout=my.time.limit, onTimeout="warning")
运行example(evalWithTimeout)
以查看其他使用方式。