R在经过一定时间后结束重复语句

use*_*015 2 time loops r

我有一个可能需要很长时间的功能.

我想知道是否有更简洁的方法来阻止功能,除了这样的事情:

repeat{

  time1 <- Sys.time()
  myfunction(x,y,z,...)
  time2 <- Sys.time()
  if(time2 - time1 > my.time.limit) {
   break
  }
}
Run Code Online (Sandbox Code Playgroud)

GSe*_*See 6

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)以查看其他使用方法.