Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: RE: local variables and running do files


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/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index