R:计算时显示图

时间:2014-09-30 07:50:07

标签: r plot while-loop

我写了一个R脚本,做了很多繁重的计算。脚本进入while循环并进行大约16次(平均循环持续3到5分钟)。

我希望能够跟踪"计算进展:能够看到已完成了多少工作以及还有多少工作要做。所以我只打印了迭代次数和完成循环的计算时间。

我想要添加的是一种"进度条",我用ggplot2直方图表示。每次计算完成后,我都会更新图表("已完成"区域变大,"剩余"区域随后减小),然后我打印出来。但是,没有情节显示在"情节" R studio的区域,而功能仍在执行。一旦整体计算(16个循环)完成,所有绘图都会出现。

所以我的问题是:是否有可能在while循环结束时显示一个情节,即使"整体"计算还没结束?

如果我不清楚,请告诉我。

提前感谢您的回答。

编辑:Sys.sleep()非常适合我的意图。

如果有人对代码感兴趣,请按照以下步骤进行操作:

# Big calculation

iter <- iter + 1
d <- data.frame(x1 = c(1,1), x2 = c(iter/maxIt, 1 - iter/maxIt), 
                x3 = c("finished", "remaining"))
print(qplot(d$x1, d$x2, fill = factor(d$x3), geom = "histogram", stat = "identity"))
Sys.sleep(1)

# Preparing the next loop

1 个答案:

答案 0 :(得分:0)

timearray <- NULL # array of time used by each iteration
for (wait in c(3,2,5,4,6)) {
    s <- Sys.time() # iteration time start
    Sys.sleep(3) # do your calculation -- I just wait here
    s <- Sys.time() - s # now s is last iteration time
    timearray <- c(timearray, s) # add this new value to array
    plot(timearray, type='h', main='Iteration time') # plot the array
}

可能是那样的吗?