updating n within for(i in 1:n) loop
The problem is that the '1:n' in 'for(i in 1:n)' is only evaluated once
at the beginning of the loop, so altering 'n' later does not change the
loop behavior. Try something like:
i <- 0
repeat {
i <- i + 1
cat(i, '\n')
if (i > 9) break
}
T.
On Mon, 2002-08-26 at 14:50, Huntsinger, Reid wrote:
I think a while or repeat is what you want. I believe the 1:n in the for
loop is evaluated only once, at the beginning, but I could be wrong.
Reid Huntsinger
-----Original Message-----
From: Prasad, Rajiv [mailto:Rajiv.Prasad at pnl.gov]
Sent: Monday, August 26, 2002 1:55 PM
To: R-Help (E-mail)
Subject: [R] updating n within for(i in 1:n) loop
Hi folks:
I think I'm having problems with figuring this one out:
test1 <- function()
{
n <- 2
for(i in 1:n)
{
cat(paste("i =", i, "\n")); flush.console()
n <- 5 # version 1
#n <<- 5 # version 2
#assign("n", 5, envir = environment(test1)) # version 3
}
}
I need the for(.) loop to run (say) n=5 times within the function, but I do
not know that before the loop begins. In other words, n is to be updated
during computations within the for(.) loop. This code prints "i = 1" and "i
= 2" only. If I modify test1(.) to use version 2 or version 3 of the
assignment, there is no change to the output, and I end up with an "n" in
the parent environment with value 5. So the problem is to assign 5 to n in
the calling environment of the for(.) loop?? (I'm sure my terminology is
quite mixed up here -- please feel free to comment.)
How do I do this?
Thanks in advance.
version
_ platform i386-pc-mingw32 arch i386 os mingw32 system i386, mingw32 status major 1 minor 5.1 year 2002 month 06 day 17 language R Rajiv -------- Rajiv Prasad Postdoctoral Research Associate, Hydrology Group Pacific Northwest National Laboratory, P.O. Box 999, MSIN K9-33 Richland, WA 99352 Voice: (509) 375-2096 Fax: (509) 372-6089 Email: rajiv.prasad at pnl.gov -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. -.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._. _._ ------------------------------------------------------------------------------ Notice: This e-mail message, together with any attachments, contains information of Merck & Co., Inc. (Whitehouse Station, New Jersey, USA) that may be confidential, proprietary copyrighted and/or legally privileged, and is intended solely for the use of the individual or entity named on this message. If you are not the intended recipient, and have received this message in error, please immediately return this by e-mail and then delete it. ============================================================================== -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._