Re: [R] Show Progress in loop

From: Philippe Grosjean <phgrosjean_at_sciviews.org>
Date: Mon 10 Oct 2005 - 19:17:46 EST

Hello,

You must explicitly use print(), show() on an object -here, use print(i)- in a loop or alternatively, use cat() to display string like: cat("loop", i, "\n")

With RGui under Windows, there is another subtility: if you have turn on 'Misc -> Buffered output' (it is ON by default), all output are delayed until the end of the command processing. You need to use flush.console() to tell to print i immediatelly within a loop. The best synthax is (since the command is only usable under Windows):

 > for (i in 1:10) {

> print(i) # You must use print explicitly within a loop
> # or, better, use: cat("loop", i, "\n")
> # Next command is to overcome buffered output in RGui
> if (.Platform$OS.type == "windows") flush.console()
> # Next command simulates a "long" process (taking 1 sec)
> Sys.sleep(1)
> # ... your loop code here...
> } Alternatively, you can use the progress() function in svMisc package (SciViews bundle). Load svMisc and look at its online help... you have several examples of use. > library(svMisc) > ?progress

Best,

Philippe Grosjean

..............................................<}))><........
  ) ) ) ) )
( ( ( ( ( Prof. Philippe Grosjean
  ) ) ) ) )
( ( ( ( ( Numerical Ecology of Aquatic Systems   ) ) ) ) ) Mons-Hainaut University, Pentagone (3D08) ( ( ( ( ( Academie Universitaire Wallonie-Bruxelles   ) ) ) ) ) 8, av du Champ de Mars, 7000 Mons, Belgium ( ( ( ( (
  ) ) ) ) ) phone: + 32.65.37.34.97, fax: + 32.65.37.30.54 ( ( ( ( ( email: Philippe.Grosjean@umh.ac.be   ) ) ) ) )
( ( ( ( ( web: http://www.umh.ac.be/~econum   ) ) ) ) ) http://www.sciviews.org ( ( ( ( (
..............................................................

Rainer M. Krug wrote:

> Hi
> 
> I have a loop which is doing time consuming calculations and I would 
> like to be able to have some feedback on where it is in it's 
> calculations. I tried to simply show the counter variable in the loop, 
> but id doesn't work as all display seems to be delayed until the loop is 
> completed. Is there any way of displaying the progress of a loop?
> 
> Rainer
> 
> The loop:
> 
> for (i in 2:Result$NoSims)
> {
> 	ppp <- runifpoint(Result$NoPlants)
> 	K <- Kest(ppp)
> 	Result$LSim[i,] <- sqrt(K$iso / pi) - K$r
> 	CM <- (Result$LSim[i,] * Result$LSim[i,]) / abs(K$r[2] - K$r[1])
> 	Result$SigCM[i] <- sum(CM, na.rm=TRUE)
> 	i  #<========================Doesn't display in the loop
> }
>

______________________________________________
R-help@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 Received on Mon Oct 10 19:39:47 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:40:41 EST