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: continuing a loop from after it encounters an error
From
Nick Cox <[email protected]>
To
"'[email protected]'" <[email protected]>
Subject
RE: st: continuing a loop from after it encounters an error
Date
Thu, 3 Feb 2011 19:45:31 +0000
My answer is the same, extended.
1. Use -capture- if you must do this.
2. I can't see why you would ever need to do anything like this. Just loop over a varlist. The globals are just middlemen here who can be cut.
Nick
[email protected]
Nick Mosely
OK, youre right, my example was weak. Here is a more accurate look at
what I am trying to accomplish:
set obs 1
g object1 = 1
g object3 = 3
global p1 object1
global p2 object2
global p3 object3
foreach i of numlist 1/3 {
foreach j of global p`i' {
tabulate `j'
}
}
object1 | Freq. Percent Cum.
------------+-----------------------------------
1 | 1 100.00 100.00
------------+-----------------------------------
Total | 1 100.00
variable object2 not found
r(111);
I hope this makes it more clear. Thanks!
On Thu, Feb 3, 2011 at 10:54 AM, Eric Booth <[email protected]> wrote:
> <>
>
> I'm still not clear on what the "objects" are. You mention that are "commands" and then you -display- them. Also, when I run your code, I don't get the r(199) error about it being an unrecognized command -- so there's something important missing from your example.
>
> Take a look at -help confirm- and decide which objects you are trying to confirm exist.
> If these are variables you can:
>
> **************************!
> clear
> set obs 10
> g object1 = 1
> g object3 = 3
>
> ****
> foreach i in object1 object2 object3 {
> cap confirm variable `i'
> if !_rc {
> display `i'
> }
> }
> **************************!
>
> If these are commands, you can also use -which- and -capture- to check to see if they are installed:
> **************************!
> clear
> foreach i in describe object1 object3 list {
> cap which `i'
> if _rc continue
> }
> **************************!
>
> On Feb 3, 2011, at 12:41 PM, Nick Mosely wrote:
>> I've built a loop that encounters an error periodically due to the
>> fact that stata can't find one of the objects specified in the list. I
>> don't mind the error, but I would like stata to skip objects in list
>> that encounter the error and continue to the next iteration of the
>> loop, rather than breaking the loop. I've tried the continue command,
>> but am not sure that is what it's meant for.
>>
>> Here is a simplified version of the code. In this example, assume that
>> objects1 and object3 are valid commands but object2 is not:
>>
>> foreach i in object1 object2 object3 {
>> display `i'
>> continue
>> }
>>> object1
>>> unrecognized command: object2
>>> r(199);
>>
>> What can I do get the code to continue running through object3?
>>
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/