Statalist


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

AW: Re: AW: st: How to use the marco names?


From   "Martin Weiss" <[email protected]>
To   <[email protected]>
Subject   AW: Re: AW: st: How to use the marco names?
Date   Thu, 6 Aug 2009 17:22:12 +0200

<> 


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/



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index