Генерация идентификатора по группам

У меня есть проблема в 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 что определяет хороший вопрос здесь.

Другие вопросы по тегам