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: [EMAIL PROTECTED]
  ) ) ) ) )
( ( ( ( (    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
> }
>

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to