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: Modifying the content of a macro


From   Jeph Herrin <stata@spandrel.net>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Modifying the content of a macro
Date   Wed, 28 Jul 2010 15:26:41 -0400

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