【问题标题】:How to add additional years to an individual/company after last observed year?在最后一个观察年之后,如何为个人/公司添加额外的年份?
【发布时间】:2017-03-29 04:46:36
【问题描述】:

我在 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

【问题讨论】:

  • 正确的拼写是Stata;不是 STATA。

标签: stata expand dummy-variable


【解决方案1】:

这可能会有所帮助。请注意,expand 会忽略所有参数

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

【讨论】:

  • 好;接受答案会给你一些声誉(我也是......)。
  • 完美!我去做。我是这个平台的新手,所以如果我在接受答案时出现任何错误,我深表歉意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2022-11-22
  • 1970-01-01
相关资源
最近更新 更多