I am not sure why Stata doesn't recognize the final closing bracket, but a
simpler example returns:
. sysuse auto,clear
(1978 Automobile Data)
. local lagif "foreach l in 2 4"
. `lagif' {
foreach command may not result from a macro expansion interactively or in do
files
r(198);
Since -foreach- cannot result from a macro expansion one way around this
would be to wrap the -foreach- and -forv- in -if- statements.
For example:
count
if r(N) > 900 {
local lagif "l in 2 4"
local tag =1
}
else {
local lagif "l = 1(1)4"
local tag =2
}
if `tag' == 1 {
foreach `lagif' {
//global X...
}
}
if `tag' == 2 {
forv `lagif' {
//global X...
}
}
Scott
> -----Original Message-----
> From: [email protected] [mailto:owner-
> [email protected]] On Behalf Of dferry
> Sent: Friday, August 18, 2006 10:13 AM
> To: [email protected]
> Subject: st: Funky local macro result
>
> Dear Statalisters,
> I've pasted in a program I wrote, below. As shown, it works just fine.
> However, if I change the lines that say:
> foreach l in 2 4 {;
>
> to:
> `lagif' {;
>
> then, I get an error in which Stata doesn't recognize the final closing
> bracket in the program. I.e., I get the following error msg:
> unrecognized command: } invalid command name
> r(199);
>
*
* 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/