Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • eststo different estimates' names conditional on value of a macro inside loop

    I have a loop that generates 24 regressions: 12 using an all boys sample, and 12 using an all girls sample. I'd like to store these regressions using eststo in a way that the boys sample regressions are called "boy1, boy2, ..., boy12", and the girls sample regression are called "girl1, girl2, ..., girl12".

    I've tried so many local macro attemps but they are seem to fail. How can I do this? Below is my code right now, calling the estimates r1 to r24.


    Code:
    qui eststo clear
    local i 1
    
    foreach sample in 1 0{
    
        foreach sex in boys girls{
        
            forv st = 1(1)2{
                preserve
                keep if boy == `sample'
                
                eststo r`=`i'': reg delta_`sex'`st' $controls1, cluster($cluster_vars)
                estadd ysumm
                estadd local Mean = string(round(e(ymean), 0.01), "%9.2f")
                estadd local fe Yes
                
                local i = `i' + 1
                
                eststo r`=`i'': reg delta_`sex'`st' $controls2, cluster($cluster_vars)
                estadd ysumm
                estadd local Mean = string(round(e(ymean), 0.01), "%9.2f")
                estadd local fe Yes
                local i = `i' + 1
                
                eststo r`=`i'': reg delta_`sex'`st' $controls3 cluster($cluster_vars)
                estadd ysumm
                estadd local Mean = string(round(e(ymean), 0.01), "%9.2f")
                estadd local fe Yes
                local i = `i' + 1
                
                restore
                
            }
        }    
    }

  • #2
    Code:
    foreach sex in boys girls{
        forval i=1/12{
            display "`sex'`i'"
        }
    }
    With a counter, it works the same. Just reset the counter as sex iterates from boy to girl.

    Res.:

    Code:
    . foreach sex in boys girls{
      2. 
    .     forval i=1/12{
      3. 
    .         display "`sex'`i'"
      4. 
    .     }
      5. 
    . }
    boys1
    boys2
    boys3
    boys4
    boys5
    boys6
    boys7
    boys8
    boys9
    boys10
    boys11
    boys12
    girls1
    girls2
    girls3
    girls4
    girls5
    girls6
    girls7
    girls8
    girls9
    girls10
    girls11
    girls12
    Last edited by Andrew Musau; 21 Jul 2024, 16:30.

    Comment

    Working...
    X