楼主: unearthy
17363 13

[数据管理求助] 仅保留具有连续5 年以上观测值的企业数据,如何在stata中实现? [推广有奖]

  • 1关注
  • 0粉丝

教师

硕士生

73%

还不是VIP/贵宾

-

威望
0
论坛币
650 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
399 点
帖子
31
精华
0
在线时间
349 小时
注册时间
2010-10-21
最后登录
2025-12-28

楼主
unearthy 发表于 2015-7-2 12:17:58 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
仅保留具有连续5 年以上观测值的企业数据,如何在stata中实现?可以以下面的数据为例。

firm

year

1

2002

1

2003

1

2004

1

2005

1

2006

1

2007

1

2008

1

2009

1

2010

1

2011

2

2001

2

2002

2

2004

2

2005

2

2006

2

2008

2

2009

2

2010


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Stata 企业数据 tata 观测值 year 如何

沙发
unearthy 发表于 2015-7-2 12:19:05
企业1可以保留,企业2的数据全部删除,就是想达到这种效果

藤椅
andruw 在职认证  发表于 2015-7-2 14:37:51
  1. clear

  2. . input firm year

  3.           firm       year
  4.   1. 1 2002
  5.   2. 1 2003
  6.   3. 1 2004
  7.   4. 1 2005
  8.   5. 1 2006
  9.   6. 1 2007
  10.   7. 1 2008
  11.   8. 1 2009
  12.   9. 1 2010
  13. 10. 1 2011
  14. 11. 2 2001
  15. 12. 2 2002
  16. 13. 2 2004
  17. 14. 2 2005
  18. 15. 2 2006
  19. 16. 2 2008
  20. 17. 2 2009
  21. 18. 2 2010
  22. 19. end

  23. .
  24. . list

  25.      +-------------+
  26.      | firm   year |
  27.      |-------------|
  28.   1. |    1   2002 |
  29.   2. |    1   2003 |
  30.   3. |    1   2004 |
  31.   4. |    1   2005 |
  32.   5. |    1   2006 |
  33.      |-------------|
  34.   6. |    1   2007 |
  35.   7. |    1   2008 |
  36.   8. |    1   2009 |
  37.   9. |    1   2010 |
  38. 10. |    1   2011 |
  39.      |-------------|
  40. 11. |    2   2001 |
  41. 12. |    2   2002 |
  42. 13. |    2   2004 |
  43. 14. |    2   2005 |
  44. 15. |    2   2006 |
  45.      |-------------|
  46. 16. |    2   2008 |
  47. 17. |    2   2009 |
  48. 18. |    2   2010 |
  49.      +-------------+

  50. .
  51. . capture ssc install xtpattern

  52. .
  53. . xtset firm year
  54.        panel variable:  firm (unbalanced)
  55.         time variable:  year, 2001 to 2011, but with gaps
  56.                 delta:  1 unit

  57. . xtpattern, gen(pattern)

  58. . list

  59.      +---------------------------+
  60.      | firm   year       pattern |
  61.      |---------------------------|
  62.   1. |    1   2002   .1111111111 |
  63.   2. |    1   2003   .1111111111 |
  64.   3. |    1   2004   .1111111111 |
  65.   4. |    1   2005   .1111111111 |
  66.   5. |    1   2006   .1111111111 |
  67.      |---------------------------|
  68.   6. |    1   2007   .1111111111 |
  69.   7. |    1   2008   .1111111111 |
  70.   8. |    1   2009   .1111111111 |
  71.   9. |    1   2010   .1111111111 |
  72. 10. |    1   2011   .1111111111 |
  73.      |---------------------------|
  74. 11. |    2   2001   11.111.111. |
  75. 12. |    2   2002   11.111.111. |
  76. 13. |    2   2004   11.111.111. |
  77. 14. |    2   2005   11.111.111. |
  78. 15. |    2   2006   11.111.111. |
  79.      |---------------------------|
  80. 16. |    2   2008   11.111.111. |
  81. 17. |    2   2009   11.111.111. |
  82. 18. |    2   2010   11.111.111. |
  83.      +---------------------------+

  84. .
  85. . keep if strpos(pattern, "11111")
  86. (8 observations deleted)

  87. . list

  88.      +---------------------------+
  89.      | firm   year       pattern |
  90.      |---------------------------|
  91.   1. |    1   2002   .1111111111 |
  92.   2. |    1   2003   .1111111111 |
  93.   3. |    1   2004   .1111111111 |
  94.   4. |    1   2005   .1111111111 |
  95.   5. |    1   2006   .1111111111 |
  96.      |---------------------------|
  97.   6. |    1   2007   .1111111111 |
  98.   7. |    1   2008   .1111111111 |
  99.   8. |    1   2009   .1111111111 |
  100.   9. |    1   2010   .1111111111 |
  101. 10. |    1   2011   .1111111111 |
  102.      +---------------------------+

  103. .
  104. . drop pattern

  105. . list

  106.      +-------------+
  107.      | firm   year |
  108.      |-------------|
  109.   1. |    1   2002 |
  110.   2. |    1   2003 |
  111.   3. |    1   2004 |
  112.   4. |    1   2005 |
  113.   5. |    1   2006 |
  114.      |-------------|
  115.   6. |    1   2007 |
  116.   7. |    1   2008 |
  117.   8. |    1   2009 |
  118.   9. |    1   2010 |
  119. 10. |    1   2011 |
  120.      +-------------+

  121. .
  122. end of do-file
复制代码
已有 3 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
Stakiny + 3 + 3 + 3 热心帮助其他会员
unearthy + 1 + 1 + 1 精彩帖子
hustchen2012 + 20 热心帮助其他会员

总评分: 论坛币 + 20  学术水平 + 4  热心指数 + 4  信用等级 + 4   查看全部评分

板凳
hustchen2012 在职认证  发表于 2015-7-2 21:30:26
有一个比较笨的方法,gen x=1 , 然后,bys stkcd :egen y=sum(x),然后,drop if y<5

报纸
gwrsm 发表于 2016-1-20 12:00:02
mark下。。。。。。

地板
sushuiasushui 发表于 2016-3-13 20:50:38
andruw 发表于 2015-7-2 14:37
如果我不是把企业2的数据全部删除,而是删除2001、2002这两年,保留相对来说比较多的连续数据,即2004至2010年。请问如何实现呢?

7
fancysoap8 发表于 2017-12-17 11:05:51
hustchen2012 发表于 2015-7-2 21:30
有一个比较笨的方法,gen x=1 , 然后,bys stkcd :egen y=sum(x),然后,drop if y
哇其实挺有用的,多谢!

8
paopao1203 发表于 2020-3-18 13:18:19
fancysoap8 发表于 2017-12-17 11:05
哇其实挺有用的,多谢!
他这个代码是不是不对啊,仅仅是保留了存货五年以上的企业但是不能实现企业持续经营的标准啊

9
paopao1203 发表于 2020-3-18 13:30:09
andruw 发表于 2015-7-2 14:37
您好,您的代码很有用,但是如果我想筛选出存活三年以上的企业即可,年份跨度11年,pattern的结果有很多种,如 ..111.....;11.111.111.;..1..1..111.等许多种情形,请问该怎么筛选呢

10
paopao1203 发表于 2020-3-18 13:45:29
paopao1203 发表于 2020-3-18 13:30
您好,您的代码很有用,但是如果我想筛选出存活三年以上的企业即可,年份跨度11年,pattern的结果有很多种 ...
明白啦,只要有相同的1的数量,不管怎么排列都可以的,谢谢大神

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-3 17:24