Cristoph et al.--
I think you would want to add another set of single quotes around
ldep`u' in Nick's solution (silly example below).
sysuse auto, clear
loc xlist
forv i=1/5 {
tempvar r`i'
g `r`i''=rep78==`i'
loc xlist `xlist' i.foreign|`r`i''
}
di "`xlist'"
xi: reg pr `xlist'
On 7/16/08, Nick Cox <[email protected]> wrote:
> I agree. In fact, I'd go one step further:
>
> foreach u of numlist 0/2{
> local xlist `xlist' i.land|ldep`u'
> }
>
> Sometimes the quotes just make things more complicated.
>
> Nick
> [email protected]
>
> Eva Poen
>
> take it in steps and it works:
>
> foreach u of numlist 0/2{
> local xlist "`xlist' " "i.land|" "`" "ldep`u'" "'"
> }
>
>
> -di "`xlist'"- returns
>
> i.land|`ldep0' i.land|`ldep1' i.land|`ldep2'
>
> on my machine.
>
> 2008/7/16 Christoph Birkel <[email protected]>:
>
> > I want to program a loop which produces a macro `xlist' containing a
> list of
> > dummy variable interaction expansion expressions with temporary
> variable
> > names `ldep0' , `ldep1' etc. as a string . For this purpose I wrote:
> > foreach u of numlist 0/`y2'{
> > local ldep`u' "ldep`u'"
> > local xlist "`xlist' i.land|``ldep`u'''"
> > }
> > The resulting macro should contain an expression like " i.land|`ldep0'
> > i.land|`ldep1' i.land|`ldep2' " (when `y2' contains 2) which
> can be
> > used as argument in -xi: reg-, as in: xi: reg yvar i.land `xlist' .
> (The
> > temporary variables `ldep0' and so on, corresponding to the macros are
> > generated later in a separate loop.)
> > What actually happens, is that, due to the single quotation marks, the
> > macros containing the names of the temporary variables are subsituted
> by
> > their content (which should not happen), so the content of the
> resulting
> > macro is " i.land|ldep0 i.land|ldep1 i.land|ldep2 ", which cannot be
> used
> > to refer to temporary variables. For the same reason, it is not
> possible to
> > define a local macro with a string as content which starts and ends
> with
> > quotation marks. I found no way to avoid the unintended macro
> substitution
> > using "\" or compound quotes. Any recommendation is highly
> appreciated.
*
* 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/