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 on April 23, and its replacement, statalist.org is already up and running.


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

RE: st: Modifying the content of a macro


From   "Nick Cox" <n.j.cox@durham.ac.uk>
To   <statalist@hsphsun2.harvard.edu>
Subject   RE: st: Modifying the content of a macro
Date   Wed, 28 Jul 2010 20:53:46 +0100

Jeph's alternative will work fine for your example. If you have very
long varlists, it will bite you by truncating the varlist. 

Nick 
n.j.cox@durham.ac.uk 


-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Thomas
Speidel
Sent: 28 July 2010 20:48
To: statalist@hsphsun2.harvard.edu
Subject: Re: st: Modifying the content of a macro

Thanks Nick and Jeph. That's exatly what I needed.

Quoting Jeph Herrin <stata@spandrel.net> Wed 28 Jul 13:26:41 2010:

> The -list- directive is not working because you substracting
> a string rather than a macro. You can either store "length" in
> a separate macro and then substract that in your statement #2, or
> instead try
>
>   local nolength = subinstr("`main'","length","",.)
>
> hth,
> Jeph
>
> On 7/28/2010 3:11 PM, Thomas Speidel wrote:
>> I am writing a loop to cycle through a number of models. For example,
>>
>> . sysuse auto
>> (1978 Automobile Data)
>>
>> . local main mpg price weight
>>
>> . local adjust length gear_ratio turn
>>
>> . foreach c of local main {
>> 2. local nolength: list adjust - "length"
>> 3. logistic foreign `c' `adjust' if "`c'" != "weight"
>> 4. logistic foreign `c' `nolength' if "`c'" == "weight"
>> 5. }
>>
>> Which fails on the second model. How do I modify `adjust' so that the
>> string "length" is removed from its content and applied to the second
>> set of models? In a less automated fashion, I want:
>>
>> . logistic foreign mpg length gear_ratio turn
>> . logistic foreign price length gear_ratio turn
>> . logistic foreign weight gear_ratio turn
>>
>> Preferrably, in this order. Creating another macro without "length"
is
>> not ideal, because I am dealing with a much larger set of covariates.
>> Thanks.

*
*   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