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]

From |
Maria Ana Vitorino <vitorino@wharton.upenn.edu> |

To |
<statalist@hsphsun2.harvard.edu> |

Subject |
Re: st: RE: macro of macros? |

Date |
Sun, 6 Nov 2011 11:15:02 -0500 |

Thanks again, Ana On Nov 6, 2011, at 10:52 AM, Nick Cox wrote:

That strikes me as being a question about laying out your code. Youcan use multiline definitions in conjunction with #delimit ; .Nick n.j.cox@durham.ac.uk Maria Ana Vitorino ok. so maybe I wasn't clear.... What Tirthankar suggested (which is below) works fine but the problem is that it's not very easy to read what are the different sets used in the estimation, i.e. the first line inTirthankar's suggested code can get very long and hard to read if one has many different specifications with many variables. So, what I was trying to do was to define the different sets in separate lines so that it's easier to read and make changes. What you proposed in the previous response works well but may be prone to errors so I was wondering if there was a way around that. Is it more clear what I'm looking for now? Any help is appreciated. Tirthankar's suggestion: local rhssets ""x1 x2" "x4 x5" "x2 x6"" local counter = 1 foreach x of local rhssets { reg y `x' predict yhat`counter' local counter = `counter' +1 } Your suggestion: 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'' } Ana On Nov 6, 2011, at 10:29 AM, Nick Cox wrote: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 n.j.cox@durham.ac.uk 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 n.j.cox@durham.ac.uk 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 ***, canwehave 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/

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

**Follow-Ups**:**Re: st: RE: macro of macros?***From:*Austin Nichols <austinnichols@gmail.com>

**RE: st: RE: macro of macros?***From:*Nick Cox <n.j.cox@durham.ac.uk>

**References**:**st: macro of macros?***From:*Maria Ana Vitorino <vitorino@wharton.upenn.edu>

**st: RE: macro of macros?***From:*Nick Cox <n.j.cox@durham.ac.uk>

**Re: st: RE: macro of macros?***From:*Maria Ana Vitorino <vitorino@wharton.upenn.edu>

**RE: st: RE: macro of macros?***From:*Nick Cox <n.j.cox@durham.ac.uk>

**Re: st: RE: macro of macros?***From:*Maria Ana Vitorino <vitorino@wharton.upenn.edu>

**RE: st: RE: macro of macros?***From:*Nick Cox <n.j.cox@durham.ac.uk>

- Prev by Date:
**RE: st: spatial weight matrix in stata** - Next by Date:
**Re: st: spatial weight matrix in stata** - Previous by thread:
**RE: st: RE: macro of macros?** - Next by thread:
**RE: st: RE: macro of macros?** - Index(es):