Announcement

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

  • How to generate lag variable by groups?

    To whom it was attached attention by:
    I have a simple dataset like below. I want to generate lag.2 var of "ToverOs" so that I can calculate:
    ToverOst-ToverOst-2

    Code:
    input long stkcd str12 Trddt double(ToverOs day)
    1 "2008-01-02" 1.141407 1
    1 "2008-01-03" 1.569018 2
    1 "2008-01-04" 1.131045 3
    2 "2008-01-02" 1.595663 1
    2 "2008-01-03" 1.653669 2
    2 "2008-01-04" 1.854244 3
    4 "2008-01-02" 7.767716 1
    4 "2008-01-03" 6.816699 2
    4 "2008-01-04" 5.304759 3
    the solution of mine is to generate a lag.2 var by stkcd, but tsset doesn't work. It said:

    repeated time values in sample
    any other solutions to this issue? Thanks!

  • #2
    Jason:
    you may want to consider:
    Code:
    . generate double new_Trddt = date( Trddt , "YMD")
    
    . format new_Trddt %td
    
    . tsset stkcd new_Trddt
    
    Panel variable: stkcd (strongly balanced)
     Time variable: new_Trddt, 02jan2008 to 04jan2008
             Delta: 1 day
    
    . bysort stkcd ( new_Trddt ): g wanted=L2.ToverOs
    
    . list
    
         +------------------------------------------------------------+
         | stkcd        Trddt    ToverOs   day   new_Trddt     wanted |
         |------------------------------------------------------------|
      1. |     1   2008-01-02   1.141407     1   02jan2008          . |
      2. |     1   2008-01-03   1.569018     2   03jan2008          . |
      3. |     1   2008-01-04   1.131045     3   04jan2008   1.141407 |
      4. |     2   2008-01-02   1.595663     1   02jan2008          . |
      5. |     2   2008-01-03   1.653669     2   03jan2008          . |
         |------------------------------------------------------------|
      6. |     2   2008-01-04   1.854244     3   04jan2008   1.595663 |
      7. |     4   2008-01-02   7.767716     1   02jan2008          . |
      8. |     4   2008-01-03   6.816699     2   03jan2008          . |
      9. |     4   2008-01-04   5.304759     3   04jan2008   7.767716 |
         +------------------------------------------------------------+
    
    .
    Kind regards,
    Carlo
    (Stata 19.0)

    Comment


    • #3
      That's exactly what i wanted to do. Thank you Sir.

      Comment

      Working...
      X