Hi all,
I need a little help with flow control in R. What I'd like to do is to
advance a for loop by changing its counter. However, what seems obvious
to me does not yield the proper results. An example of my problem is
for (i in seq(1, some_number, some_increment)){
<some stuff>
if (some_condition == T) i <- i + 2; #want to advance the loop
by 2
}
Whenever the counter goes to the next step, the next item in the
original sequence seq(1, some_number, some_increment) replaces the
counter value. Is there a way for me to do this?
Best,
Ken
flow control
2 messages · Lo, Ken, Christos Hatzis
Hi Ken,
The help page for ?"for" says that:
The index seq in a for loop is evaluated at the start of the loop; changing
it subsequently does not affect the loop. The variable var has the same type
as seq, and is read-only: assigning to it does not alter seq.
So you cannot do what you want to do with a for loop. But you could do what
you want with a while loop:
i <- 0
while(i < 20) {
i <- i + 1
cat(i, "\n")
if(i %% 5 == 0) i <- i + 2
}
-Christos
-----Original Message-----
From: r-help-bounces at r-project.org
[mailto:r-help-bounces at r-project.org] On Behalf Of Lo, Ken
Sent: Wednesday, March 04, 2009 3:53 PM
To: r-help at r-project.org
Subject: [R] FW: flow control
Hi all,
I need a little help with flow control in R. What I'd like
to do is to advance a for loop by changing its counter.
However, what seems obvious to me does not yield the proper
results. An example of my problem is
for (i in seq(1, some_number, some_increment)){
<some stuff>
if (some_condition == T) i <- i + 2; #want to advance
the loop by 2 }
Whenever the counter goes to the next step, the next item in
the original sequence seq(1, some_number, some_increment)
replaces the counter value. Is there a way for me to do this?
Best,
Ken
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.