У меня есть «сырой» набор данных, который я пытаюсь очистить. Набор данных состоит из лиц с переменной age
между 2000 и 2010 годами. В наборе данных имеется примерно 20000 человек с той же проблемой.Как использовать foreach/forv для замены дубликатов в порядке возрастания
Переменная age
не увеличивается в 2004-2006 годах. Например, для одного человека это выглядит следующим образом:
2000: 16,
2001: 17,
2002: 18,
2003: 19,
2004: 19,
2005: 19,
2006: 19,
2007: 23,
2008: 24,
2009: 25,
2010: 26,
До сих пор я пытался генерировать переменные для максимального возраста и макс года:
bysort id: egen last_year=max(year)
bysort id: egen last_age=max(age)
, а затем использовать foreach
в сочетании с лагами попробовать заменить age
переменную в порядке убывания так, что, когда новая переменная last_age
(что теперь 26 за все годы), а выглядит следующим образом:
2010: 26
2009: 25 (26-1)
2008: 24 (26-2) , and so on.
Однако у меня есть некоторые проблемы с поиском правильного кода для этой проблемы.
Спасибо за ваш ответ. Альтернатива 2 работала :) –