Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: RE: Fwd: Problem with lag operator


From   Nick Cox <[email protected]>
To   "'[email protected]'" <[email protected]>
Subject   st: RE: Fwd: Problem with lag operator
Date   Tue, 15 Feb 2011 15:19:47 +0000

"doesn't work" is not diagnostic. I once tabulated about 20 different meanings encountered on this list, including "is illegal", "does not do what I would like", "does not converge before I go home" and "is not what my thesis committee would prefer to see". 

However, there is at least one evident flaw in your code. Subscripts before the equals (assignment) sign are illegal. As in any case [_n] is the default subscript you lose nothing. 

bysort id (n): replace start = end[_n-1] if start == end[_n-1]+1

appears to be what you are asking for. 

bysort id (n) : gen checkthisfirst = end[_n-1] if start == end[_n-1] + 1

would be safer. That is, check it first to see if it is what you want. 

Nick 
[email protected] 

Eleonora Paesen

I have the following data set and would like to replace the values in
START by the one on the previous line of END if they are of one unit
apart (within the same id).
For example I would like to replace the value of 1184 for the second
observation of id1 by the value of 1183 in first observation of END;

I have tried with this:

bysort id (n): replace start[_n]=end[_n-1] if start[_n]==end[_n-1]+1
It doesn't work.
Would you have any suggestions on this?

list id n start end in 1/23, sepby(id)

     +-----------------------+
     | id   n   start    end |
     |-----------------------|
  1. |  1   1     956   1183 |
  2. |  1   2    1184      . |
     |-----------------------|
  3. |  2   1    1064   1085 |
  4. |  2   2    1086   1163 |
  5. |  2   3    1164   1193 |
  6. |  2   4    1194      . |
     |-----------------------|
  7. |  3   1     976   1184 |
  8. |  3   2    1185      . |
     |-----------------------|
  9. |  4   1     993      . |
     |-----------------------|
 10. |  5   1    1034   1149 |
 11. |  5   2    1150      . |
     |-----------------------|
 12. |  6   0       0      0 |
     |-----------------------|
 13. |  7   1    1009   1035 |
 14. |  7   2    1036   1061 |
     |-----------------------|
 15. |  8   1     968    969 |
 16. |  8   2     970      . |
     |-----------------------|
 17. |  9   1     945    955 |
 18. |  9   2     956    974 |
 19. |  9   3     976   1027 |
 20. |  9   4    1028   1029 |
 21. |  9   5    1030   1131 |
 22. |  9   6    1194      . |
     |-----------------------|
 23. | 10   1     918      . |
     +-----------------------+

*
*   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index