Follow-up Q Re: [R] displaying computation outputs inside "for" loops

Dave Atkins datkins at
Mon Aug 9 18:03:00 CEST 2004

I have a somewhat related question.  A while back I was doing some simulations 
using for() loops, and I wanted to keep track of the iterations using a line of 
code quite similar to what Dimitris presented below.  Instead of printing the 
iteration message at the end of each iteration (actually, at the end of every 
100th), nothing was printed until the for() loop was complete, and *then* all 
the iteration messages were reported.  Extending Dimitris' example:

for(i in 1:10000){
   x <- rnorm(5)
   cat("the values of `x' are:", format(x), "\n")
   cat("computation", i, "finished\n\n")

demonstrates what I'm referring to (using R v1.9.1 with Windows XP): Iterations 
are not printed as they occur, only at the end of the for() loop computation.

An interesting wrinkle is that I sometimes use Emacs (and ESS).  Running the 
code from within Emacs prints the iterations as they occur; also, if I switch to 
other programs and then back to R, iterations have been printed.

Can anybody help me out with what's going on (and how to print iterations from 
within a for() loop as they occur)?

Thanks, Dave

Dave Atkins, PhD
University of Washington

Message: 28
Date: Mon, 9 Aug 2004 11:26:08 +0200
From: "Dimitris Rizopoulos" <dimitris.rizopoulos at>
Subject: Re: [R] displaying computation outputs inside "for" loops
To: "Dewez Thomas" <t.dewez at>
Cc: r-help at
Message-ID: <009101c47df2$e7e13430$ad133a86 at www.domain>
Content-Type: text/plain;	charset="iso-8859-1"

Hi Thomas,

is this what you would like to get,

for(i in 1:3){
   x <- rnorm(5)
   cat("the values of `x' are:", format(x), "\n")
   cat("computation", i, "finished\n\n")

for(i in 1:3) print(i)

I hope this helps.


Dimitris Rizopoulos
Doctoral Student
Biostatistical Centre
School of Public Health
Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/16/396887
Fax: +32/16/337015

----- Original Message -----
From: "Dewez Thomas" <t.dewez at>
To: "'R mailing list'" <r-help at>
Sent: Monday, August 09, 2004 11:15 AM
Subject: [R] displaying computation outputs inside "for" loops

 >> Dear R-users,
 >> I am puzzled by for loops and am kind of ashamed to ask because it

is so

 >> simple. There must be something I am missing in the way they are


 >> Basically, I would like to iterate a given number of time and

generate a

 >> bunch of stats (that's what loops are designed for, right?). Before


 >> this I simply want to test simple procedure and see if they work (ie

got the

 >> syntax right - my main problem as I am new to R - and produce


 >> results).
 >> Even for something as basic as
 >> for (i in 1:3) {i}
 >> I get no screen output. Shouldn't R systematically display i for

every loop

 >> just like I am requesting with invoking "i"? When checking at the

end of the

 >> looping, i is indeed assigned to 5 but I cannot get intermediate


 >> Further testing shows that i takes all the values in turn.
 >>> > for (i in 1:3) {str(i)}
 >>  int 1
 >>  int 2
 >>  int 3
 >> but summary(i) doesn't display anything. Isn't there something weird


 >> this? Am I expecting something wrong and for loops just don't work

that way,

 >> unless using str() command? I tried print() and other descriptive


 >> but to no avail.
 >> A quick explanation would be grately appreciated
 >> Thomas
 >> ***
 >> Le contenu de cet e-mail et de ses pièces jointes est


 >> ______________________________________________
 >> R-help at mailing list
 >> PLEASE do read the posting guide!

More information about the R-help mailing list