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]

st: RE: AW: RE: local macro


From   "Nick Cox" <[email protected]>
To   <[email protected]>
Subject   st: RE: AW: RE: local macro
Date   Fri, 9 Apr 2010 16:40:18 +0100

Quite. In effect I assumed that Mary Ellen did not mean precisely what
she said, because there would then have been no problem. 

Nick 
[email protected] 

Martin Weiss

" Thus in fact your do-file will have created these macros;"

So if Mary ran the _entire_ code between the two dashed lines in her
post,
the -macro-s should work as expected. Her choice of words "...a do
file..."
seems to suggest that this is indeed what is going on, so there should
be no
problem. If she interrupted execution, and then resumed for the second
-gllamm- call, her -local-s would not be around...

Nick Cox

Note that "local" means precisely that. Local macros are local to the
program, do-file, do-file editor session, or interactive session in
which they are defined and are not visible outside. 

Thus in fact your do-file will have created these macros; it is merely
that they will not be visible within your interactive session. 

There are various solutions to this. One is to write a program. Another
is to use globals. Yet another is to use -c_local-. In your case the
best will be to avoid using locals altogether and pick up the e()
results in your interactive session. 

The last has been called out "cutting out the middle macro", as the
macro serves no real purpose in code like this. 

Mary E. Mackesy-Amiti

I am using Stata 10.1.  When I run the following commands from the 
command line I have no problem, but when I run them from a do file, the 
local macros are not created.  What am I missing?

---------------------------------------------------
gllamm timeinj  fup6 , i(partid) nrf(2) eqs(cons slope2) nip(2) ip(f) 
fam(poi)
matrix a=e(b)
local ll= e(ll)
local k=e(k)

gllamm timeinj fup6 , i(partid) nrf(2) eqs(cons slope2) nip(3) ip(f) 
from(a) ///
    fam(poi) gateaux(-10 10 30) lf0(`k' `ll')
-----------------------------------------------------

*
*   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