首页 文章

如何在上次观察的一年后为个人/公司增加额外的年份?

提问于
浏览
0

我在Stata中有一个不 balancer 的面板数据集 . 从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

1 回答

  • 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 |
         +----------------------------------------+
    

相关问题