Looping over parallel lists is indeed a very powerful feature.
To keep it flexible you'll often use a second extended function (word count)
with the forval command.
local x "1 2"
local y "3 4"
local n : word count `x'
forvalues i = 1/`n' {
local x1 : word `i' of `x'
local y1 : word `i' of `y'
di `x1'+2*`x1'+`y1'
}
But in my view the syntax has two drawbacks:
1) It needs a lot of lines. So it bloats your do-files expecially when you
use it with more than two locals.
(I often use it for batch graph creation where variables, selections, titles
and settings can make up to ten locals)
2) You have to create new local names inside the loop, which makes it
confusing and error prone
So sometimes I find it convenient to use that good old (not longer
documented) "for" command again.
for num 1 2 \ num 3 4 : di X+2*X+Y // Yes, you can do it in one line!
or
local x "1 2"
local y "3 4"
for num `x' \ num `y' : di X+2*X+Y
But foreach and forvalues are now state of the art, so I don't want to
advertise "for".
But I think it could be very helpful to save the user from writing all these
extended function lines and add this
parallel lists functionality to "foreach".
Best wishes
Stefan Gawrich
Dillenburg
Germany
*
* 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/