Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | "Martin Weiss" <martin.weiss1@gmx.de> |
To | <statalist@hsphsun2.harvard.edu> |
Subject | st: RE: about macro's double quotes |
Date | Tue, 9 Mar 2010 21:20:15 +0100 |
<> 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... HTH Martin -----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of G. Dai Sent: Dienstag, 9. März 2010 20:20 To: statalist@hsphsun2.harvard.edu Subject: st: about macro's double quotes dear all, 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? regards, Guang 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/