Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: Re: Forvalues not recognizing local macro


From   Anjali Gupta <[email protected]>
To   [email protected], "P. Wilner Jeanty" <[email protected]>
Subject   Re: st: Re: Forvalues not recognizing local macro
Date   Sat, 22 Mar 2008 14:51:30 -0500

Hello,

Thank you for the reply - however that didn't fix it.

The code works fine if I take `covagrl' out of the forvalues loop.

Anjali



*************
current e-mail:    [email protected]
permanent e-mail:   [email protected]
*************


Quoting "P. Wilner Jeanty" <[email protected]>:

> On Sat, Mar 22, 2008 at 2:43 PM, Anjali Gupta <[email protected]>
> wrote:
> > Hello,
> >
> > In the following examples, the MICOMBINE command recognizes my local
> varlist,
> > but the FORVALUES loop results in INVALID SYNTAX if I refer to the local
> macro.
> >  Any help is much appreciated.
> >
> > *****************************
> >
> >
> > local covafs
> >       " zmale agecmof2   zblack zhispanc
> >        zhchld1a   zxxwrkft zboy
> >          zcurremp   zcar" ;
> >
> >
> > local covaboy
> >       " zmale agecmof2   zblack zhispanc
> >        zhchld1a   zxxwrkft zboy
> >          zcurremp   zcar if zboy ==1 " ;
> >
> > local covagrl
> >        " zmale agecmof2   zblack zhispanc
> >        zhchld1a   zxxwrkft zboy
> >          zcurremp   zcar if zboy == 0" ;
> >
> >
> >
> > * ATTEMPT TO REDEFINE COVAGRL WITHIN LOOP;
> >
> > * 2 - PARENTING ONLY;
> > micombine reg   actscaf3
> > efchmag3
> > famrotf3
> > posscaf3
> > negscaf3
> > acpscaf3
> > monscaf3
> > psyscaf3
> >        e       `covagrl'       ,impid(_mult_) obsid(sampleid)  robust
> cluster (sampleid) ;
> >
> > forvalues j = 1/10 {;
> >
> > local covagrl
> >        " zmale agecmof2   zblack zhispanc
> >        zhchld1a   zxxwrkft zboy
> >          zcurremp   zcar if zboy == 0" ;
> >
> >  reg   actscaf3
> > efchmag3
> > famrotf3
> > posscaf3
> > negscaf3
> > acpscaf3
> > monscaf3
> > psyscaf3
> >        e
> > `covagrl'
> >
> >        , robust cluster (sampleid), if _mult_ == `j';
> >
> >
> >
> >        local r2 =  e(r2);
> >      gen obs`j' = `r2';
> >
> > };
> >
> > list  obs1-obs10 in 1/1;
> > drop obs1-obs10;
> >
> > *********************************
> >
> > * DESIRED METHOD - REFER TO COVAGRL DEFINED ABOVE;
> >
> > * 3 - YOUTH ONLY;
> > micombine reg   actscaf3
> >  stasclf3
> > pbsscaf3
> > extscaf3
> > innscaf3
> > frscaf3
> > hopscaf3
> > envscaf3
> >        e       `covagrl'       ,impid(_mult_) obsid(sampleid)  robust
> cluster (sampleid) ;
> >
> >
> > forvalues j = 1/10 {;
> >        qui reg actscaf3
> >  stasclf3
> > pbsscaf3
> > extscaf3
> > innscaf3
> > frscaf3
> > hopscaf3
> > envscaf3
> >        e       `covagrl'       , robust cluster (sampleid), if _mult_ ==
> `j';
> >
> >
> >
> >        local r2 =  e(r2);
> >      gen obs`j' = `r2';
> >
> > };
> >
> > list  obs1-obs10 in 1/1;
> > drop obs1-obs10;
>
> Anjali, I am not sure exactly what causes your problem, but I suspect
> it has to do with where you place <if _mult_ == `j'> in your program,
> in which case INVALID SYNTAX would be legitimate. Try to modify your
> program as follows:
>
>  ........... e`covagrl'   if _mult_ == `j', robust cluster (sampleid)
>
>
> where ........ refers to anything that comes before e`covagrl'
>
> Best
> --
> P. Wilner Jeanty, Post-doctoral researcher
> Dept. of Agricultural, Environmental, and Development Economics
> The Ohio State University
> 2120 Fyffe Road
> Columbus, Ohio 43210
> (614) 292-6382 (Office)
> *
> *   For searches and help try:
> *   http://www.stata.com/support/faqs/res/findit.html
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
>

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index