Jeph Herrin <[email protected]>:
Can you not use -else- here? I.e.
foreach V of varlist `biglist' {
gettype(`V')
if `type'=="M" {
<do stuff>
}
else {
<do other stuff>
}
}
If you did want to reference variables by their number, and did -keep
`biglist'- first, you can refer to word `i' of `biglist' to get the
ith variable (see "Macro extended functions for parsing" in help
extended_fcn).
BTW, it might be more efficient to move the type "M" variables into a
separate macro to process separately, depending on how you are
choosing to handle all the variables in a particular group, e.g.
payor_1-payor_6. E.g.
foreach V of varlist `biglist' {
gettype(`V')
if `type'=="M" {
<make list of variables related to `V' e.g. payor_1-payor_6>
<and put the list in local `thislist' >
loc mlist `" `mlist' "`thislist'" "'
}
else {
<do other stuff>
}
}
foreach V of varlist `mlist' {
<now operate on each group of related vars>
}
On Tue, May 13, 2008 at 3:45 PM, Jeph Herrin <[email protected]> wrote:
>
> I have hundreds of variables that I need to loop through
> and process. Some of them are grouped together because they
> represent different options that are not mutually exclusive;
> for example, "Insurance type: check all that apply:" has
> results stored in:
>
> payor_1
> payor_2
> payor_3
> payor_4
> payor_5
> payor_6
>
>
> I have a datum -type- associated with each that tells me it is part of a
> "multiselect" (sic) question, so when I loop through all my variables:
>
> foreach V of varlist `biglist' {
> gettype(`V')
> if `type'=="M" {
> <do stuff>
> }
> .
> .
> .
> }
>
> The ... handles every other types of variable. However, when I
> <do stuff> I'd like to handle all the variables in that particular
> group, eg, payor_1-payor_6. I can do this, but then I need to advance
> the -foreach- to the variable *after* payor_6.
>
> One thought I had was to reference the variables by their number, which
> is available via -describe, number- (I'd have to -keep `biglist'- first)
> but I'm not sure how to refer to a variable by its number, and can't
> find any info on how to do so.
>
> Does anyone see how to make this idea - or any other- work so I can skip
> ahead in a -foreach- loop?
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/