Thank you for your replies. You're right, the better way to phrase my issue
is "how to loop through two or more lists in parallel." Sebastian's
-tokenize- recommendation was very helpful and allows me to go through two
lists in parallel, but it doesn't seem to easily generalize to more than two
lists since a subsequent -tokenize- command will overwrite the local macros
it creates. Prior to the subsequent tokenize, I could store the original
tokenized macros in another set of locals, but this may get messy.
I plan to read the "Problem with lists" article when I can get a hold of it,
but Nick, you seem to imply there is a better approach to problem. Prior to
Stata, I had programmed in R, where I would create multiple lists of the
same length (e.g., a list of dependent variables, a list of independent
variables, a list of variables indicating subpopulations, a list of svyset
features (e.g., Taylor series vs. rep. wgts.), etc.) and then call each
model sequentially from within the lists. I'd appreciate your advice on the
better approach.
Thanks,
Brent
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Nick Cox
Sent: Thursday, February 08, 2007 2:57 AM
To: [email protected]
Subject: st: RE: does stata create an index that can be used in loops?
The specific question has been well answered.
In this case, there is an easy solution.
The more general issue I take to be how to loop through two or more lists in
parallel. This isn't really the best way to think about Brent's problem, but
he thought it was. Matters are not always quite so easy. There is a fairly
lengthy discussion in
Cox, N.J. 2003. Problems with lists. Stata Journal 3(2): 185--202
Nick
[email protected]
Brent Fulton
> I am using stata 9 and want to know whether stata creates an index in
> loops that I can use to pull from a local macro. For my end result, I
> would like the following variables to be created:
> var1_county, var2_county, var3_county
>
> I did the following:
>
> local a "var1 var2 var3"
> foreach x of local a{
> local b "`b' `x'"
> }
> *the loop above results in the following: local b "var1_zip var2_zip
> var3_zip"
>
> sort county
> foreach x of local b{
> by county: egen `x'_county=total(`x')
> }
> But this creates the variables: var1_zip_county, var2_zip_county,
> var3_zip_county
>
>
> Is there a way to do this: see*
> sort county
> foreach x of local b{
> by county: egen *grab the appropriate element of local
> a*_county=total(`x')
> }
*
* 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/
*
* 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/