Данные настраиваются с помощью информации, соответствующей идентификатору, который может отображаться более одного раза.Настройка динамической точки остановки для цикла
ID Data
1 X
1 Y
2 A
2 B
2 Z
3 X
Я хочу, чтобы цикл, который обозначает экземпляр идентификатора, который я ищу. Это первый раз, второй раз и т. Д.? Я хочу, чтобы это было как строка в форме _#
, поэтому мне, насколько мне известно, нужно пройти за рамки простой функции _n
в Stata. Если кто-то знает способ делать то, что я хочу, без цикла, дайте мне знать, но мне все равно понравится ответ.
Я следующий цикл в Stata
by ID: gen count_one = _n
gen count_two = ""
quietly forval j = 1/3 {
replace count_two = "_`j'" if count_one == `j'
}
Выход теперь выглядит следующим образом:
ID Data count_one count_two
1 X 1 _1
1 Y 2 _2
2 A 1 _1
2 B 2 _2
2 Z 3 _3
3 X 1 _1
Вопрос заключается в том, как я могу заменить 16
выше, чтобы сказать Stata взять максимум столбца count_one, потому что мне нужно запустить эту еженедельно, и этот макс изменится, и я хочу уменьшить ошибки.
Последняя команда не работает. Должно быть «gen», а не 'egen'. 'tostring' менее прямо, чем' string() '. –
Спасибо, что поймали это. Теперь исправлено. – SOConnell