相关疑难解决方法(0)

在R中使用"foreach()"函数时如何创建进度条?

有关如何在R程序中创建循环计数器的一些信息性帖子.但是,在使用带有"foreach()"的并行化版本时,如何创建类似的功能?

foreach r progress-bar

41
推荐指数
5
解决办法
2万
查看次数

Rktk2中的gtkProgressBar

我正在尝试添加一个gtkProgressBar我为R脚本创建的小接口(使用该RGtk2包).

如果我做一些简单的事情,如:

for (i in 1:50)
    {
    gtkProgressBarSetFraction(progress, i/50)
    Sys.sleep(1)
    }
Run Code Online (Sandbox Code Playgroud)

一切顺利,酒吧每秒更新一次.

但是,当我转到我的实际代码时,我有一个循环,我做了类似的事情

for(i in 1:1000)
    {
    gtkProgressBarSetFraction(progress, i/1000)
    #do some heavy computation here
    }
Run Code Online (Sandbox Code Playgroud)

这里的问题是界面"冻结"并且进度条仅在循环结束时更新,因此完全击败其使用...

我在这里错过了什么吗?如何定期"唤醒"界面以使其刷新?

谢谢你尼科

编辑:好的,我解决了问题,但我仍然不明白发生了什么.我之后添加了一个Sys.sleep电话gtkProgressBarSetFraction,现在接口更新了.为了减少"浪费的时间",我刚才这样做了Sys.sleep(0.0001)(因此,对于1000个周期,我只有大约0.1-1秒的计算时间,这是可以接受的).任何人都可以解释为什么会这样?

gtk r progress-bar

3
推荐指数
1
解决办法
822
查看次数

标签 统计

progress-bar ×2

r ×2

foreach ×1

gtk ×1