2

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

我想知道是否有一种更简洁的方法来停止该功能,而不是像这样:

repeat{

  time1 <- Sys.time()
  myfunction(x,y,z,...)
  time2 <- Sys.time()
  if(time2 - time1 > my.time.limit) {
   break
  }
}
4

1 回答 1

6

R.utils包中有一个evalWithTimeout函数。你可以像这样使用它:

require("R.utils")
evalWithTimeout({
  repeat{
    myfunction(x,y,z,...)
  }
}, timeout=my.time.limit, onTimeout="warning")

运行example(evalWithTimeout)以查看其他使用方法。

于 2012-09-02T22:55:59.210 回答