Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Neil Shephard <nshephard@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: AW: st: AW: Syntax forvalues in Stata 11 SE |
Date | Thu, 23 Sep 2010 12:44:47 +0000 |
On Thu, Sep 23, 2010 at 12:36 PM, Gauri Khanna <gwkhanna@hotmail.com> wrote: > Hi, > > > Here is the error with - set trace on - > > . set trace on > > . forvalues svy = 1/`max1' { > 2. use `allsvys', clear > 3. keep if i==`svy' > 4. } > - forvalues svy = 1/`max1' { > = forvalues svy = 1/ { > invalid syntax > r(198); There you have, it despite setting the local macro max1 earlier in your do-file, when it comes to executing the -forval- loop the local macro is empty, so -forval- can't repeat something from 1 to "nothing"! However, you wrote that you have the following.... local max1=r(max) gen error1=. gen error2=. *save `allsvys', replace /*OLD CODE: STATA 9*/ save "'allsvys'", replace forvalues svy = 1/`max1' { use "'allsvys'", clear keep if i==`svy' } ...which suggests that you are setting the local macro before the loop. I suspect there may be some confusion from your full do-file error to the shortened version snippet of code you have posted above where max1 is undefined. So does... local max1 = 2 forvalues svy = 1/`max1' { use `allsvys', clear keep if i==`svy' } ...work? Neil -- "One should as a rule, respect public opinion in so far as is necessary to avoid starvation and to keep out of prison, but anything that goes beyond this is voluntary submission to an unnecessary tyranny, and is likely to interfere with happiness in all kinds of ways..." - Bertrand Russell Email - nshephard@gmail.com Website - http://slack.ser.man.ac.uk/ Photos - http://www.flickr.com/photos/slackline/ * * 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/