Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


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

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


From   Maria Ana Vitorino <[email protected]>
To   <[email protected]>
Subject   Re: st: RE: local variables and running do files
Date   Fri, 28 Oct 2011 14:40:26 -0400

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
[email protected]

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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index