[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]
st: Funny macro behaviour inside a programme
Hi everybody. I've run into some funny behaviour by Stata when dealing
with macros inside a programme.
Here's a snippet of a -trace-. The programme calls -test-, then displays
the results, then uses -tempname- to allocate some more local names for
scalars. It assigns a value to the new local `hpvalue', which has been
given the local variable __00000O. Not shown are two earlier lines that
assigns values to previously-defined locals `hpvalue1' and `hpvalue2'.
The last command asks Stata (8.2, btw) to display the values of both of
r(drop) = 0
r(chi2) = 7.778333995775768
r(df) = 1
r(p) = .0052876538356317
- tempname htest hpvalue hdf hsigma
- scalar `htest'=r(chi2)
= scalar __00000N=r(chi2)
- scalar `hpvalue'=r(p)
= scalar __00000O=r(p)
- di "hpvalue1=" `hpvalue' " hpvalue2=" `hpvalue2'
= di "hpvalue1=" __00000O " hpvalue2=" __00000O
What is curious is that both `hpvalue1' and `hpvalue2' are expanded to the
local variable that was assigned to `hpvalue', namely __00000O.
Eventually I got rid of the bug by using shorter local macro names. But
`hpvalue1', for example, has only 8 characters. Did I miss a bit in the
manual that says that local macros have to have names with fewer than 8
This e-mail and any files transmitted with it are confidential
and intended solely for the use of the individual or entity to
whom it is addressed. If you are not the intended recipient
you are prohibited from using any of the information contained
in this e-mail. In such a case, please destroy all copies in
your possession and notify the sender by reply e-mail. Heriot
Watt University does not accept liability or responsibility
for changes made to this e-mail after it was sent, or for
viruses transmitted through this e-mail. Opinions, comments,
conclusions and other information in this e-mail that do not
relate to the official business of Heriot Watt University are
not endorsed by it.
* For searches and help try: