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

时间:2012-09-02 22:35:14

标签: r loops time

我的功能可能需要相当长的时间。

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

repeat{

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

1 个答案:

答案 0 :(得分:6)

R.utils 包中有evalWithTimeout个功能。您可以像这样使用它:

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

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