Announcement

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

  • Generating variable means with various length within a loop

    Hi everyone,

    I want to generate several variables measuring the mean of a variable (here it's called var) of a rolling time period in a panel dataset.
    Until now, I did it like this:

    Code:
    gen mean_1_wo = l.var
    gen mean_2_wo = 1/2* (l.var + l2.var)
    gen mean_3_wo = 1/3* (l.var + l2.var + l3.var)
    gen mean_4_wo = 1/4* (l.var + l2.var + l3.var + l4.var)
    gen mean_5_wo = 1/5* (l.var + l2.var + l3.var + l4.var + l5.var)
    gen mean_6_wo = 1/6* (l.var + l2.var + l3.var + l4.var + l5.var + l6.var)

    It works that way, but it's admittedly not nice coding at all. Is there a possibility to generate those six variables in one row in a loop?
    It is not a new problem. I always failed to generate multiple variables within a loop when the periods addressed are varying.

    If you know a coding structure or a source that I missed, I am glad to here it.
    Thanks a lot in advance,


    Patrick


  • #2
    Code:
    gen double sum = 0 
    quietly forval j = 1/6 { 
          replace sum = sum + l`j'.var 
         gen double mean_`j' = sum / `j' 
    }

    Comment


    • #3
      Perfect. Thanks a lot, Nick!

      Comment

      Working...
      X