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, is already up and running.

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

st: RE: Question about scalars

From   "Nick Cox" <>
To   <>
Subject   st: RE: Question about scalars
Date   Mon, 9 Aug 2010 19:05:56 +0100

Scalars and variables share the same namespace. 

What's more, in case of ambiguity the variable name interpretation
always trumps the scalar name interpretation. 

In the auto data, -d- means the variable -displacement-. 

Tempnames solve this for a different reason, that temporary names are
guaranteed unique. 

This is all documented, e.g. 

SJ-6-2  dm0021  . Stata tip 31: Scalar or variable? Problem of ambiguous
        . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  G. I.
        Q2/06   SJ 6(2):279--280                                 (no
        tips for avoiding abbreviation conflicts with variables
        when naming scalars

and the manual references it gives, but you are in good company in being
bit by this. 


Steve Samuels

In the code below, I generate a scalar "d" from a regression result;
it looks okay, but trying to add it to another scalar doesn't work.
If, however I use a -tempname- , I get the right answer.  Could
someone explain to me why the first approach doesn't work and if
there's another approach that doesn't involve a -tempname-?

scalar drop _all
scalar a = 10
scalar b = 20
scalar c = b + a
scalar dir

sysuse auto, clear
reg mpg foreign
scalar d = _b[foreign]
scalar e = d + a
scalar dir a d e // "e" is wrong

tempname dd
scalar `dd' = _b[foreign]
scalar e = `dd' +a
scalar dir a `dd' e // "e" is /okay

*   For searches and help try:

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