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 at the end of May, and its replacement, statalist.org is already up and running.


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

Re: st: use of brace inside of macro


From   Maarten buis <maartenbuis@yahoo.co.uk>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: use of brace inside of macro
Date   Wed, 16 Jun 2010 07:32:39 +0000 (GMT)

--- On Wed, 16/6/10, Dr. Bill Westman wrote:
> I am curious whether a brace can be
> used inside of a macro.
> 
> For example: 
> 
> sysuse auto, clear
> macro drop _all
> 
> global test  }
> log using test, replace
> 
> forvalues j = 1/1  {
> macro list _all
> }
> 
> forvalues x = 1/1  {
> macro list _all
> ${test}
> end
> break
> ...
> causes Stata to provide r(1) error.
> 
> I've tried the macro with and without quotes "" around the
> brace.

I guess what is happening is that Stata is collecting the 
lines of code that are part of a -forvalues- block without
evaluating the local and global macros. This makes sense
to me, as often you want the values of those macros to
change across iterations of that loop. The consequence is
then that you can't use a global or local macro containing
a brace to close the loop: Stata saw the begining of the
loop, so it starts collecting lines till it sees a closing 
brace, and since it is not evaluating the macros it can't 
find the closing brace, and than runs into your -break-
command.

Hope this helps,
Maarten

--------------------------
Maarten L. Buis
Institut fuer Soziologie
Universitaet Tuebingen
Wilhelmstrasse 36
72074 Tuebingen
Germany

http://www.maartenbuis.nl
--------------------------


      

*
*   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–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index