ryo xiaohefly 我平时使用for loop,然後添加个print或cat函数显示进度。你可以参考一下 for(i in 1:10){ x = i + 1 cat(paste("\nx is", x)) } 原文:binary.com 面试试题 I - GARCH模型中的ARIMA(p,d,q)参数最优化
king64 有过同样问题!没有解决! 不过虽然看不到进度,但可以查看是否出现“>”,出现了运行结束。 或者打开机器资源使用情况,看内存消耗和占用情况,内存占用下降了,运行结束。 不过都无法知道进度,无法知道还需要多长时间运行才能完毕。 期望高手给予解答
nan.xiao 宝藏都在评论里 http://ryouready.wordpress.com/2010/01/11/progress-bars-in-r-part-ii-a-wrapper-for-apply-functions/
dclong 回复 第1楼 的 xiaohefly: 恩,自己估算一下时间。然后运行结束之后给自己发封邮件或是短信提醒一下就好。不过运行时间长的程序最好robust一点。 如果在想放在Server上面运行的话,首先看看自己最多能占用多少空间,其次了解一下Server是不是自动备份的等。对于不是很稳定的Server,最好及时将中间运行结果拷到自己的硬盘上面,否则你可能后悔莫及。我自己一般会在程序运行完后,将结果summary一下发送到自己的邮箱。 如果你的程序里面涉及到读写很多文件,最好进行一下异常处理(R里面可以用try),这个能够有效地避免前面提到的磁盘空间不够的情况。如果你的程序运行到一半,发现没有空间挂了你就被催了。 如果是simulation的话,设置种子。这样即便你的程序中途中断,你可以接着以前的结果继续运行.
jah_et 回复 第3楼 的 谢益辉: 以前上吴老师的课的时候我这么做过,然后拟合出一个指数分布,然后我那个作业完整数据大约要跑2个小时,我觉着好长啊,就没跑= =...现在想想2个小时简直是弱爆了[s:12]
tjt2008 http://ryouready.wordpress.com/2010/01/11/progress-bars-in-r-part-ii-a-wrapper-for-apply-functions/ 有能看这个内容的大侠吗?国内打不开这个链接。
chuxinyuan Matlab跑神经网络那个进度条让我印象深刻。Windows系统复制文件时那个进度条也蛮不错的。 有进度条的好处是,它在时刻告诉它的主人:“主人你看,我在拼命的工作”。跑的不一定快,但是至少人家态度是好的。用户也愿意再等一会儿,因为根据进度条,用户大致有个预期,10分钟了,进度条在1/3处,大概还有20分钟就完了,先去泡壶茶之类的。 如果没有进度条,仅仅显示一个小红点,时间一长真的让人有点怀疑程序卡死在半道了,这都10分钟了,怎么一点反应都没有啊,用户潜意识会有一个预测:再等下去仍然还是卡在那里没反应,然后选择取消执行。(虽然有个进度条会加大系统负担,理论上跑得反而慢) 所以从用户的角度来讲,有进度条比没有好,进度条这事我觉得R或者RStudio要是自带就好了。当然可能有用户就是不喜欢这东西,那么可以设置个参数,不喜欢关闭即可。
chuxinyuan library(tcltk) u <- 1:20000 #开启进度条 pb <- tkProgressBar("进度", "已完成 %", 0, 100) for (i in u) { info <- sprintf("已完成 %d%%", round(i * 100 / length(u))) setTkProgressBar(pb, i * 100 / length(u), sprintf("进度 (%s)", info), info) } #关闭进度条 close(pb)
JackieMe 我都是用 beepr::beep() 或者包装过的 notify-send 命令来发通知。如果是一个人工作就用 beep() 来让电脑发出声音,在图书馆自习室什么的不适合发声的场合就用 notify-send 让桌面弹出通知。 notify <- function() { cmd <- "notify-send" system2(cmd, args = "-i notification-message-im 'R Message' 'Mission Complete, Next->!'") } beep <- function() { beepr::beep() }