Try
bysort id office (electionyear) : gen count = 0
by id office : replace count =
cond(_n == 1, 1, 1 + count[_n-1]) + 1 if win
Felipe Botero, modulo a mass of MIME/HTML, asked
I have data on congressional careers and need to create a variable that
counts the number of *consecutive* terms served in the same office.
I used the following code but it didn't do the trick:
sort id office electionyear
by id office: gen count = cond(win==0,0,sum(win))
list id office win count
+---------------------------------+
| id office win count |
|---------------------------------|
| 153 1 0 0 |
| 153 1 1 1 |
| 153 1 0 0 |
| 153 1 1 2 | <-- should start again with 1
| 153 1 1 3 |
| 153 1 1 4 |
+---------------------------------+
The problem is that I need the counter to start back at 1 after each
occurrence of win==0.
*
* 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/