Yes and no.
Your version of the code runs (correcting a mistake
pointed out separately):
gen count = 0
by id office : replace count =
cond(_n == 1, 1, 1 + count[_n-1]) if win
That would be wrong if the data are not sorted
-id office electionyear-.
In giving code solutions, it is best not
to make assumptions about -sort- order.
Specifying the -sort- order within code
will do no harm if data are sorted as they
should be, but the converse isn't true.
There are two solutions which I think
are acceptable (modulo use of variations
on -bysort-):
(1)
bysort id office (electionyear) : gen count = 0
by id office : replace count =
cond(_n == 1, 1, 1 + count[_n-1]) if win
(2)
gen count = 0
bysort id office (electionyear) : replace count =
cond(_n == 1, 1, 1 + count[_n-1]) if win
You might prefer (2) on the grounds that -count-
is initialised as 0, regardless of anything else.
I have no objection to that at all -- in fact
it is probably clearer -- but if so, the -sort-
order should be spelled out in the following line.
Nick
[email protected]
Jeph Herrin
um, I think that first line can be:
gen count = 0
n j cox (corrected)
> Try
>
> bysort id office (electionyear) : gen count = 0
>
> by id office : replace count =
> cond(_n == 1, 1, 1 + count[_n-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/