Генерация идентификатора по группам
У меня есть проблема в Stata, которую я не могу решить. Мой набор данных выглядит как первые два столбца следующего блока, и я хотел бы добавить третий столбец, где newvar
сбрасывает себя в любое время id
меняет свое значение важно для newvar
чтобы сохранить порядок наблюдений, поэтому я не могу отсортировать по группам, чтобы сгенерировать его.
|id|group|newvar
|7 |10 |1
|7 |10 |1
|7 |10 |1
|7 |5 |2
|7 |5 |2
|7 |8 |3
1 ответ
Я полагаю, вы не имеете в виду то, что говорите, поскольку в вашем примере показано изменение новой переменной, даже если id
не.
Вы всегда можете убедиться, что текущий порядок взят буквально, работая с переменной, которая отслеживает порядок наблюдения
gen long obs = _n
Тогда я думаю, что вы хотите
bysort id (order) : gen newvar = sum(group != group[_n-1])
Это довольно простой вопрос, учитывая цель этого форума для профессиональных программистов и программистов-энтузиастов, которые, как ожидается, прочтут документацию и покажут попытки написания кода. См., Например, https://stackru.com/help/mcve что определяет хороший вопрос здесь.