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" <[EMAIL PROTECTED]> Subject: Re: [R] displaying computation outputs inside "for" loops To: "Dewez Thomas" <[EMAIL PROTECTED]> Cc: [EMAIL PROTECTED] Message-ID: <[EMAIL PROTECTED]> 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.
Best, Dimitris
---- 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 Web: http://www.med.kuleuven.ac.be/biostat/ http://www.student.kuleuven.ac.be/~m0390867/dimitris.htm
----- Original Message ----- From: "Dewez Thomas" <[EMAIL PROTECTED]> To: "'R mailing list'" <[EMAIL PROTECTED]> 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
executed.
>> >> 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
doing
>> 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
expected
>> results).
>>
>> Even for something as basic as
>> for (i in 1:3) {i}
>>
>> I get no screen output. Shouldn't R systematically display i forevery 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
values.
>>
>> 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 weirdwith
>> 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
commands
>> 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
destin...{{dropped}}>> >> ______________________________________________ >> [EMAIL PROTECTED] mailing list >> https://www.stat.math.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
