[R] Progress Monitor in R / looping

Philippe Grosjean phgrosjean at sciviews.org
Wed Oct 25 12:14:40 CEST 2006


This question is regularly asked. Have a look at progress() in svMisc() 
package (SciViews bundle).
Best,

Philippe Grosjean

Barry Rowlingson wrote:
> Xiaofan Cao wrote:
>> Hi there,
>>
>> I'm writing a program in R that has a few nested loops. I'd like to 
>> monitor the progress when the program is running and be able to estimate 
>> the remaining time.
> 
>   A long time ago I started writing some code to give R something like 
> an 'iterator' object. You could do this:
> 
>   > ml=loop(5)
> 
>   > while(iterate(ml))
>   + {cat("doing ",iteration(ml)," of ",N(ml),"\n","Ending at 
> ",predictEnd(ml),"\n");sleep(5)}
> 
> doing  1  of  5
>   Ending at  Wed 25 Oct 2006 11:00:05 BST
> doing  2  of  5
>   Ending at  Wed 25 Oct 2006 11:00:20 BST
> doing  3  of  5
>   Ending at  Wed 25 Oct 2006 11:00:20 BST
> doing  4  of  5
>   Ending at  Wed 25 Oct 2006 11:00:20 BST
> doing  5  of  5
>   Ending at  Wed 25 Oct 2006 11:00:20 BST
> 
>   you use loop(N) to construct a 1:N loop object, while(iterate(ml)) to 
> loop round it, iteration(ml) to get the current iteration number, N(ml) 
> to get the iteration limit, and predictEnd(ml) to guess when the whole 
> thing will finish.
> 
>   All the information about the loop is encapsulated in the ml object.
> 
>   It needs a chunk of polishing up and nobody seemed that interested in 
> it last time I mentioned it. My particular application was to MCMC, 
> where you could have an MCMC iterator object that was a subclass of my 
> simple loop class, and then you could have methods like if(isBurnIn(ml)) 
> to decide when to start taking samples, or if(!isThinned(ml)) to decide 
> whether to store a sample from a thinned chain. Again, all the info 
> encapsulated in the loop object.
> 
>   Another advantage is that unlike for(i in 1:10000000) it doesn't 
> create a vector of 10000000 objects...
> 
>   If anyone thinks this is worth me working on then I'll try and find 
> some spare time (hah!) to fix it up. Or if anyone wants to take over, I 
> can throw my code at you at see if it sticks.
> 
> Barry
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 
>



More information about the R-help mailing list