Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Nick Cox <njcoxstata@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: RE: local variables and running do files |
Date | Sat, 29 Oct 2011 02:12:53 +0100 |
It's the same question. The use of a local requires its prior definition in the same locale. "Locale", although a term used elsewhere in computing, is in this context my term earlier defined in the thread. Nick On Fri, Oct 28, 2011 at 7:40 PM, Maria Ana Vitorino <vitorino@wharton.upenn.edu> wrote: > I am using Stata 11. > But in any case what if I want to run some regressions, for example: > > reg y x1 x2 x3 > > is equiv to > > --regtest.do > local x "x1 x2 x3" > reg y `x' > ---- > > > but if after running the first 2 lines I want to run the command " sum `x' " > it does not work. Is there anyway around this so that I don't have to > define the local macro again? > > Thanks, > Ana > > > > On Oct 28, 2011, at 2:30 PM, Nick Cox wrote: > >> The term "local variable" is to be avoided, as explained at >> >> http://www.stata.com/statalist/archive/2008-08/msg01258.html >> >> What you are seeing is a defining feature of a local macro: it is visible >> only locally, i.e. within the locale in which it is defined, i.e. not >> visible outside the interactive session, program, do file or do file editor >> contents within which it is defined. >> >> You need to pass the contents of your local macro to the do-file as an >> argument. If you write e.g. >> >> ------------ mydo.do >> su `1' >> ------------ >> >> And then go >> >> mydo "var1 var2" >> >> then the do file uses the argument you feed to it. Arguments are separated >> by spaces and bound by " ". This is all explained in the chapter(s) on >> do-files in [U], which is part of your Stata, as without declaring otherwise >> it is assumed that you are using Stata 12. >> >> Nick >> n.j.cox@durham.ac.uk >> >> Maria Ana Vitorino >> >> I would like to run a do file in batches (i.e. a few lines at a time) >> but it seems that then the local variables that I defined in the >> beginning do not carry over ... >> Any solution for this? >> >> Here is some output for a simple example so that you can better >> understand what is my issue. >> >> Thanks!! >> Ana >> >> >> . do "/var/folders/Xn/Xnl4Mq-lGR4-mNII1zm-Wk+++TI/-Tmp-//SD17268.000000" >> >> . sum >> >> Variable | Obs Mean Std. Dev. Min Max >> -------------+-------------------------------------------------------- >> var1 | 24 12.5 7.071068 1 24 >> var2 | 24 36.5 7.071068 25 48 >> var3 | 24 61.5 7.071068 50 73 >> >> . local var "var1 var2" >> >> . >> end of do-file >> >> . do "/var/folders/Xn/Xnl4Mq-lGR4-mNII1zm-Wk+++TI/-Tmp-//SD17268.000000" >> >> . sum `var' >> >> Variable | Obs Mean Std. Dev. Min Max >> -------------+-------------------------------------------------------- >> var1 | 24 12.5 7.071068 1 24 >> var2 | 24 36.5 7.071068 25 48 >> var3 | 24 61.5 7.071068 50 73 >> >> >> * >> * 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/ > > * > * 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/ > * * 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/