如何在R studio中暂停正在运行的程序?

时间:2015-04-27 05:55:43

标签: r genetic-algorithm

我想运行一个使用遗传算法的程序。我处理了2000代迭代的50代10000条规则(停止标准)。所以,花费的时间很多。对于4代和4次迭代的情况,花了30分钟。如何在某次迭代中暂停运行此类程序,而不会在该迭代之前丢失算法的输出? 我可以将结果放在堆栈中(就像我们在汇编语言中所做的那样)还是R studio为我的问题提供了一个选项? 任何建议也会受到赞赏。

2 个答案:

答案 0 :(得分:1)

假设你想每4代“暂停”一次 在您的代码中,添加类似这样的内容

if (generation %% 4 == 0) browser()

这将暂停每4代执行一次并为您提供调试控制,因此您可以检查以查看所有内容的状态,并在准备就绪时继续执行而不会丢失任何数据。也许不完全是你的想法,但肯定是一种选择。

答案 1 :(得分:0)

或者,方便的方法可能涉及使用readline

fun <- function() {
  ANSWER <- readline("Are you a satisfied R user? ")
  ## a better version would check the answer less cursorily, and
  ## perhaps re-prompt
  if (substr(ANSWER, 1, 1) == "n")
    cat("This is impossible.  YOU LIED!\n")
  else
    cat("I knew it.\n")
}
if(interactive()) fun()

Sys.sleep如果要暂停执行几秒钟:

testit <- function(x)
{
    p1 <- proc.time()
    Sys.sleep(x)
    proc.time() - p1 # The cpu usage should be negligible
}
testit(3.7)