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: macro of macros?
From
Nick Cox <[email protected]>
To
"'[email protected]'" <[email protected]>
Subject
RE: st: RE: macro of macros?
Date
Sun, 6 Nov 2011 15:29:24 +0000
You can do what Tirthankar showed you just recently. In many ways it's a better method. For reasons that weren't clear to me it seemed that you wanted something different.
You might find these tutorials useful:
SJ-3-2 pr0009 . . . . . . . . . . . . . Speaking Stata: Problems with lists
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox
Q2/03 SJ 3(2):185--202 (no commands)
discusses ways of working through lists held in macros
SJ-2-2 pr0005 . . . . . . Speaking Stata: How to face lists with fortitude
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox
Q2/02 SJ 2(2):202--222 (no commands)
demonstrates the usefulness of for, foreach, forvalues, and
local macros for interactive (non programming) tasks
Nick
[email protected]
Maria Ana Vitorino
Thanks Nick. This is very helpful.
This requires that every time I add a set I have to include two
additional lines and to make sure that the name of the set is in line
with the index. Using the example again,
If I add another set, say set 4 I need to do:
local set4 "x5 x6"
local index `index' 4
but suppose that what I do (by mistake) is
local set4 "x5 x6"
local index `index' 3
Any chance I can add another set in such a way that these types of
mistakes won't happen?
Thanks!
Ana
On Nov 6, 2011, at 10:07 AM, Nick Cox wrote:
> Wildcards are for variable names only. But you don't need any such
> device here. There are various ways to approach what you want.
> Here's one:
>
> local index
> local set1 "x1 x2"
> local index `index' 1
> local set2 "x2 x3"
> local index `index' 2
>
> foreach i of local index {
> reg y xvars `set`i''
> }
>
> Nick
> [email protected]
>
> Maria Ana Vitorino
>
> I've only recently started experimenting with macros and I have the
> following question: can we have a macro of macros and loop through the
> different sub-macros without having to set beforehand how many sub-
> macros there are in the macro? Maybe it's easier to understand what
> I'm looking for with an example:
>
> I know that the following can be done:
>
> local set1 "x1 x2"
> local set2 "x2 x3"
> local sets ""`set1'" "`set2'"" ***
>
> foreach xvars of local sets {
> reg y xvars
> }
>
> But, instead of having to list all the macros in the line ***, can we
> have something like:
>
> local set1 "x1 x2"
> local set2 "x2 x3"
>
> local sets ""`set'*""
>
> foreach xvars of local sets {
> reg y xvars
> }
>
>
> Ideally I would like to add (or remove) sets as a please so I wouldn't
> like to have to keep updating the line *** everytime I do so...
>
*
* 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/