<>
The third one does not watch out for "the contents of the names". It notes
that there is no indication of a string here, so by default it looks for
variables named a, b, c whose first value it would -display- by default...
***
clear*
set obs 10000
gen a=1
gen b=2
gen c=3
replace a=3 in 1
replace b=4 in 1
replace c=5 in 1
local level a b c
di "`level'"
di `"level"'
di `level'
***
HTH
Martin
-----Ursprüngliche Nachricht-----
Von: [email protected]
[mailto:[email protected]] Im Auftrag von [email protected]
Gesendet: Donnerstag, 6. August 2009 17:15
An: statalist
Betreff: Re: Re: AW: st: How to use the marco names?
Nick, thank you for your help, which lets me understand more.
I suddenly think of the following typing,
.local level a b c
. di "`level'"
a b c
. di `"level"'
level
. di `level'
a not found
r(111);
If -di- is to display literal strings or the contents of the names
supplied, the results for the above three should be,
`level' // literal string
error // no local name "level",but local name level.
a b c // the contents of the names.
Please forgive my ignorance, thank you.
Best regards,
Rose.
----- Original Message -----
From: Nick Cox <[email protected]>
To: [email protected]
Subject: Re: AW: st: How to use the marco names?
Date: 2009-8-6 22:38:04
In addition to other advice, note that a major issue here is not macros,
but the use of -display-.
-display- is quite happy to display several things one after another. It
is also happy to display literal strings or the contents of the names
supplied. The " " or `" "' are essential to disambiguate.
Thus for example
di "a b c"
is an instruction to display the literal string "a b c". -display-
neither knows nor cares what that string means.
In contrast,
di a b c
is an instruction to display the contents of a, followed by the contents
of b, followed by the contents of c. -display- now needs to work at
finding out what a, b and c are.
Nick
Rose a.k.a. [email protected] wrote:
> Dear Martin,Dan and others,
>
> I am completely confused by the use of local marco.
>
> Take some examples,
> r(files) after -fs-
>
> r(names) after -est dir-
>
> r(mean) after -su-
>
> //maybe the three above are not local marco, but I need to use it in my
following procedure.
>
> r(levels) after -levelsof-
> // it seems different when the type of variable following -levelsof- is
different.
> ........
>
> How to display and use them in my follwing procedure?
> di `r(levels)'
> di `"`r(levels)'"'
> di `r(files)'
> di `"`r(files)'"'
> di `r(names)'
> di r(mean)
>
> Something similar is,
> local x="1 2"
> local x "1 2"
> local x 1 2
> local x: r(mean)
>
> Concretely, when to add single quote and double quote? when to use colon?
> especially,the difference among them.
>
*
* 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/