Ведите первую запись, когда происходит событие - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть следующие данные в Stata:

clear

* Input data
input grade id exit time
1   1   .   10
2   1   .   20
3   1   2   30
4   1   0   40
5   1   .   50
1   2   0   10
2   2   0   20
3   2   0   30
4   2   0   40
5   2   0   50
1   3   1   10
2   3   1   20
3   3   0   30
4   3   .   40
5   3   .   50
1   4   .   10
2   4   .   20
3   4   .   30
4   4   .   40
5   4   .   50
1   5   1   10
2   5   2   20
3   5   1   30
4   5   1   40
5   5   1   50

end

Задача состоит в том, чтобы при первом событии использовать идентификатор foreach первой строки, а если событие не происходит, взять последний идентификатор foreach отчета. Вот пример данных, которые я надеюсь получить

* Input data
input grade id  exit    time
3   1   2   30
5   2   0   50
1   3   1   10
5   4   .   50
1   5   1   10
end

1 Ответ

0 голосов
/ 07 ноября 2018

Определение события выглядит так: exit не равно нулю или отсутствует. Если это так, то все, что вам нужно сделать, это настроить код в моем предыдущем ответе:

bysort id (time): egen when_first_e = min(cond(exit > 0 & exit < ., time, .))
by id: gen tokeep = cond(when_first_e == ., time == time[_N], time == when_first_e) 

Предыдущая тема была здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...