在R中运行一个函数指定时间

x33g5p2x  于 2023-03-27  发布在  其他
关注(0)|答案(2)|浏览(111)

我试图让一个函数运行指定的时间,目前我正在尝试使用system.time函数。我不知道如何定义一个新的变量,它接受函数运行的累积值,然后将其放入while循环。

timer<-(system.time(simulated_results<-replicate(n=1,simulation(J,10000,FALSE,0.1),simplify="vector"))[3])

print(timer)

while(cumsum(timer)<15){
    print(cumsum(timer)) 
    simulated_results<-replicate(n=10000,simulation(J,10000,FALSE,0.1),simplify="vector")
}

我将非常感谢任何帮助!!!

8fsztsew

8fsztsew1#

如果要在指定的秒数内运行某些代码,可以尝试以下操作:

start <- as.numeric(Sys.time())
duration <- 5
results <- NULL
while(as.numeric(Sys.time())-start < duration) {
  results <- c(results, replicate(...))
}

当然,您必须更改duration的值(以秒为单位),并将replicate(...)替换为您的代码。

vjhs03f7

vjhs03f72#

您可以使用tryCatch方法和包R.utils来完成此任务。

fun_test = function(test_parameter){
  
  result <- 1+test_parameter #some execution
  return(result)
}
time = 10 #seconds
res <- NULL
tryCatch({
  res <- R.utils::withTimeout({
    check = fun_test(tsp)
  }, timeout = time)
}, TimeoutException = function(ex) {
  message("Timeout. Skipping.")
})

此程序将运行函数fun_test 10秒(由time给定。如果在此时间内执行成功,则返回结果为res,否则程序停止。有关更多指导,您可以按照此URL Time out an R command via something like try()

相关问题