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]

Re: st: RE: about macro's double quotes


From   "G. Dai" <[email protected]>
To   [email protected]
Subject   Re: st: RE: about macro's double quotes
Date   Tue, 9 Mar 2010 14:16:43 -0800

thanks, Martin and Nick.
Nick, I did set varabbrev off this time with the example given by Martin,
and still
got xme=. .  It seems STATA still tries to generate and fills xme with . .

On Tue, Mar 9, 2010 at 2:08 PM, Martin Weiss <[email protected]> wrote:

>
> <>
>
> BTW, I do not get any complaints from Stata, whether -varabbrev- is on or
> off:
>
>
> *******
> clear*
> set obs 1
> set varabbrev off
> query other
> gen gr5pnhmy=1
> gen gr5pnhm=1
> d
>
> clear*
> set obs 1
> set varabbrev on
> query other
> gen gr5pnhmy=1
> gen gr5pnhm=1
> d
> *******
>
>
> HTH
> Martin
>
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Nick Cox
> Sent: Dienstag, 9. März 2010 22:57
> To: [email protected]
> Subject: RE: st: RE: about macro's double quotes
>
> I already provided an answer. I think that Guang needs to
>
> . set varabbrev off
>
> Stata objects to an instruction to -generate- new variable -gr5pnhm-
> because it interprets that as an abbreviation of existing variable
> -gr5pnhmy-.
>
> Nick
> [email protected]
>
> Martin Weiss
>
> I would be surprised if Stata indeed complained about "r5pnhm5y", I
> guess it
> complains about "r5pnhm5". Second time through the inner loop, you want
> Stata to refuse to -generate- because the -if- expression is not
> satisfied,
> but Stata does still (try to) -generate-, and fill the new var with
> missings
> - due to the -if-...
>
>
> clear*
> set obs 100
>
> local set "md me"
>
> foreach el in `set'{
>        gen x`el'=1 if "`el'"=="md"
> }
>
> G. Dai
>
> thanks for the reference, Martin.
> yeah, the outer loop is redundant. But I do want to know why that "if"
> doesn't work.  it is wired to a beginner...
>
> On Tue, Mar 9, 2010 at 12:20 PM, Martin Weiss <[email protected]>
> wrote:
>
> . If you want to read up on -macro-s, check out manual [U], section
> 18.3.
> >
> > What do you want to achieve with your outer loop? You let it cycle
> through
> > three elements of a -global-. The -gen- and -replace- statements
> inside
> the
> > second loop are supposed to be executed only for the first element of
> the
> > -global-. Would it not be much easier to drag the -gen-/-replace-
> statement
> > out of the inner loop, and ditch the outer one? Maybe this is taken
> out of
> > context, but from what is visible in your post, the outer loop is
> > redundant...
> >
> G. Dai
>
> > I'm a first time  user of macros. As you can see from below, I want to
> > generate a  new var r`i'pnhm when x=md.  After execute the do file, it
> > runs smoothly for x=md. After that, however, I was always reminded by
> STATA
> > that
> >               r5pnhm5y already defined
> >               r(110);
> > so what's wrong with the following program. BTW,I'm little bit
> confused by
> > the macro
> > quotes, can anyone say tips?
>
> > global set "md mom dad";
> > foreach x in $set {;
> > forvalues i=5/8{;
> > gen r`i'pnhm=. if "`x'"=="md";
> > replace r`i'pnhm=int(10*r`i'pnhm5y)/10 if "`x'"=="md";
> > ....
> > };
>
> *
> *   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–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index