Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: Terminating a loop when a certain value is reached.
From
Stephen Cranney <[email protected]>
To
[email protected]
Subject
Re: st: Terminating a loop when a certain value is reached.
Date
Mon, 1 Apr 2013 10:03:15 -0400
Apologies for the lack of detail. I forgot to add the `i' but it
still isn't working (it's running, it just isn't doing what I want it
to, which is terminate the loop at a certain point). Below is the
relevant portion of my code. As you can see, I have a large number so
that it just keeps running indefinitely (which is why I want to be
able to make a break point trigger). Once a "birth" is created a
series of mirror observations is created for the offspring, and its
generationnum value is one greater than its parent. What I'm trying to
do is run this until generationnum equals a certain number (decided at
the beginning of the ado file), but I don't see why the continue,
break code at the end performs this function.
forvalues i = 1/999999999999999999999999 {
if births[`i'] == 1 {
expand 2, gen(newvar`i')
egen Xnewvar= rowtotal (newvar*)
drop if Xnewvar>1
drop if Xnewvar== 0 & generationnum!= 1
drop Xnewvar
replace generationnum=generationnum[`i']+1 if newvar`i'==1
if generationnum==2 {
continue, break
}
....
Thanks again,
Stephen
On Mon, Apr 1, 2013 at 8:30 AM, Nick Cox <[email protected]> wrote:
> Not much detail here.
>
> One possibility is that you are forgetting that
>
> if generationnum == 2
>
> can only mean
>
> if generationnum[1] == 2
>
> Nick
>
>
> On 1 Apr 2013, at 13:03, Stephen Cranney <[email protected]> wrote:
>
>> Hi all, I'm trying to figure out how to break out of a loop once a
>> variable is changed to a certain value. In each iteration, the value
>> is modified according to the inputs within the loop. I've tried to use
>> an "if" command:
>>
>> if generationnum==2 {
>> continue, break
>> }
>>
>> but it's still not terminating the loop. Does anybody know of a
>> command to terminate a loop once a specified calculated number is
>> reached?
>>
> *
> * For searches and help try:
> * http://www.stata.com/help.cgi?search
> * http://www.stata.com/support/faqs/resources/statalist-faq/
> * http://www.ats.ucla.edu/stat/stata/
--
Stephen Cranney
PhD Candidate
Graduate Group in Demography
University of Pennsylvania
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/faqs/resources/statalist-faq/
* http://www.ats.ucla.edu/stat/stata/