2016-11-15 1 views
0

У меня есть несбалансированный набор данных панели в Stata. С наблюдениями с 1993 по 2013 год. У меня есть переменная с именем bankrupcty year, которая указывает на год, когда каждая компания обанкротилась. Проблема в том, что мой файл Stata отсутствует до 2 лет, прежде чем каждая компания обанкротится. То есть, компания обанкротилась в 2003 году, последнее наблюдение за компанией - в 2002 или 2001 году. Однако я хочу создать фиктивную переменную, когда компания обанкротилась, но поскольку я отсутствую в этом году, я не могу выполнить команда:Как добавить дополнительные годы к человеку/компании после последнего наблюдаемого года?

gen bankrupt=0 
replace bankrupt=1 if year==bankruptcyyear 

То, что я хочу сделать, это добавить лет для каждой компании, так что я могу добавить фиктивную переменную в правильный год банкротства.

orgnumber year bankruptcyyear 
810037342 2009 0 
810037342 2010 0 
810037342 2011 0 
810037342 2012 0 
810044292 1993 2006 
810044292 1994 2006 
810044292 1995 2006 
810044292 1996 2006 
810044292 1997 2006 
810044292 1998 2006 
810044292 1999 2006 
810044292 2000 2006 
810044292 2001 2006 
810044292 2002 2006 
810044292 2003 2006 
810044292 2004 2006 
810044292 2005 2006 
810059672 1995 0 
810059672 1996 0 
810059672 2000 0 
+0

правильное написание Stata; не STATA. –

ответ

0

Это может помочь. Обратите внимание, что expand игнорирует все аргументы < 2.

clear 
input long orgnumber year bankruptcyyear 
810037342 2009 0 
810037342 2010 0 
810037342 2011 0 
810037342 2012 0 
810044292 1993 2006 
810044292 1994 2006 
810044292 1995 2006 
810044292 1996 2006 
810044292 1997 2006 
810044292 1998 2006 
810044292 1999 2006 
810044292 2000 2006 
810044292 2001 2006 
810044292 2002 2006 
810044292 2003 2006 
810044292 2004 2006 
810044292 2005 2006 
810059672 1995 0 
810059672 1996 0 
810059672 2000 0 
end 
bysort orgnumber (year) : gen toexpand = cond(_n == _N, 1 + bankruptcyyear - year[_N], 0) 
expand toexpand 
bysort orgnumber (year) : replace year = year[_n-1] + 1 if toexpand 
list, sepby(orgnumber) 

    +----------------------------------------+ 
    | orgnumber year bankru~r toexpand | 
    |----------------------------------------| 
    1. | 810037342 2009   0   0 | 
    2. | 810037342 2010   0   0 | 
    3. | 810037342 2011   0   0 | 
    4. | 810037342 2012   0  -2011 | 
    |----------------------------------------| 
    5. | 810044292 1993  2006   0 | 
    6. | 810044292 1994  2006   0 | 
    7. | 810044292 1995  2006   0 | 
    8. | 810044292 1996  2006   0 | 
    9. | 810044292 1997  2006   0 | 
10. | 810044292 1998  2006   0 | 
11. | 810044292 1999  2006   0 | 
12. | 810044292 2000  2006   0 | 
13. | 810044292 2001  2006   0 | 
14. | 810044292 2002  2006   0 | 
15. | 810044292 2003  2006   0 | 
16. | 810044292 2004  2006   0 | 
17. | 810044292 2005  2006   2 | 
18. | 810044292 2006  2006   2 | 
    |----------------------------------------| 
19. | 810059672 1995   0   0 | 
20. | 810059672 1996   0   0 | 
21. | 810059672 1997   0  -1999 | 
    +----------------------------------------+ 
+0

Большое вам спасибо за помощь! Теперь все сработало. –

+0

Хорошо; принятие ответа даст вам некоторую репутацию (и меня тоже ...). –

+0

Отлично! Я сделаю это. Я новичок на этой платформе, поэтому приношу свои извинения, если я ошибаюсь при принятии ответа. –