> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of Mike Jones
> Sent: Thursday, December 27, 2007 1:35 PM
> To: [EMAIL PROTECTED]
> Subject: [R] Conditionally incrementing a loop counter
> 
> Hi,
> I am trying a for loop from 1 to 100 by 1. However, if a 
> condition does
> not get met, I want to "throw away" that iteration. So if my loop is
> for (i in 1:100)
> and i is say, 25 and the condition is not met then I don't 
> want i to go
> up to 26.  Is there a way to do that? I can't seem to 
> manually adjust i
> because from what I understand, R creates 100 long vector and 
> uses that
> to "loops thru" and I'm not sure how to get at the index of 
> that vector.
> Any suggestions? Thanks in advance.
> 
> 
> 
> 
> Mike Jones
> Westat
> 1650 Research Blvd. RE401
> Rockville, MD 20850
> Ph: 240.314.2312
> 

Mike,

A question about R from SAS Mecca ??? :-)

I would use Peter Dalgaard's suggestion of a 'while' type loop along with the 
'next' loop control, something like this

i <- 1
iter_number <- 0
while(i<=10){
   iter_number <- iter_number + 1
   x <- runif(1)
   if (x > 0.7) next
   cat(iter_number, i, x, "\n")
   i <- i+1
}

Where iter_number allows you to print out loop number each time the condition 
is met (for instructional purposes only).  When the if condition is met, the 
next  construct skips back to the top of the while loop without executing the 
rest of the statements.

Hope this is helpful,

Dan

Daniel J. Nordlund
Research and Data Analysis
Washington State Department of Social and Health Services
Olympia, WA  98504-5204
 
 

______________________________________________
R-help@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.

Reply via email to