Richard Hiscock wrote:
I have the following data structure
id date var1 var2
1 16267 x 53
1 16267 y 106
1 16267 y 84
1 16267 y 90
1 16267 z 76
1 16267 z 65
1 16298 x 87
1 16298 y 76
2 15678 x 98
2 15678 y 98
2 16541 x 150
etc
I wish to create identifier (visitno) 1,2,3,... for each sequential date
within id.
I have tried to use :
sort id date
by id date: gen visitno = [_n] which obviously doesnt produce the
required variable
I would be greatful for solution & ?or direction to FAQ dealing with
this
----------------------------------------------------------------------------
How about:
-by id date: generate byte visitno = _n == 1-
and then
-by id: replace visitno = sum(visitno)-
Or, in one line:
-bysort id (date): generate byte visitno = ///
sum( (_n == 1) | (date > date[_n-1]) )-
As I recall, Nick Cox wrote a posted a more elegant one-line command for
this task recently on the list, but I cannot seem to find it.
You mention that your final aim is to generate summary statistics each date
within id. For this, check out -egen-.
Joseph Coveney
*
* 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/