楼主: bbsflyingsnow
780 3

[编程问题求助] 可能用到循环语句,修改变量取值 [推广有奖]

  • 7关注
  • 1粉丝

学科带头人

15%

还不是VIP/贵宾

-

威望
0
论坛币
27092 个
通用积分
57.5114
学术水平
0 点
热心指数
4 点
信用等级
0 点
经验
37647 点
帖子
1006
精华
0
在线时间
1029 小时
注册时间
2008-5-18
最后登录
2024-5-9

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如下面所示数据,对应每一个code的公司观察值,虚拟变量D打分需要做如下修改:
自从第一次被观察到D=1后(最早是2012年,不确定哪一年被观察到D=1,以300294为例,2013年第一次被观察到D=1;600969则是2014年第一次被观察到D=1)),后续年度D都赋值为1,而不是目前这种偶尔带0的情况(600969在2014被观察到D=1后,2015一直到2020都应该D=1,但是目前有些年度D=0)。
请问如何编程实现上述目标?
谢谢大神!

  1. * Example generated by -dataex-. For more info, type help dataex
  2. clear
  3. input long code int year float D
  4. 300294 2020 1
  5. 300294 2019 1
  6. 300294 2018 1
  7. 300294 2017 1
  8. 300294 2016 1
  9. 300294 2015 1
  10. 300294 2014 1
  11. 300294 2013 1
  12. 300294 2012 0
  13. 600969 2020 1
  14. 600969 2019 0
  15. 600969 2018 1
  16. 600969 2017 0
  17. 600969 2016 1
  18. 600969 2015 0
  19. 600969 2014 1
  20. 600969 2013 0
  21. 600969 2012 0
  22.   2562 2020 0
  23.   2562 2019 1
  24.   2562 2018 0
  25.   2562 2017 1
  26.   2562 2016 1
  27.   2562 2015 0
  28.   2562 2014 1
  29.   2562 2013 0
  30.   2562 2012 0
  31. 300375 2020 0
  32. 300375 2019 1
  33. 300375 2018 1
  34. 300375 2017 0
  35. 300375 2016 1
  36. 300375 2015 0
  37. 300375 2014 1
  38. 300375 2013 0
  39. 300375 2012 1
  40.     60 2020 1
  41.     60 2019 1
  42.     60 2018 0
  43.     60 2017 1
  44.     60 2016 0
  45.     60 2015 1
  46.     60 2014 0
  47.     60 2013 0
  48.     60 2012 0
  49.    545 2020 1
  50.    545 2019 0
  51.    545 2018 0
  52.    545 2017 0
  53.    545 2016 0
  54.    545 2015 1
  55.    545 2014 0
  56.    545 2013 1
  57.    545 2012 0
  58.    605 2020 0
  59.    605 2019 1
  60.    605 2018 0
  61.    605 2017 1
  62.    605 2016 0
  63.    605 2015 0
  64.    605 2014 1
  65.    605 2013 1
  66.    605 2012 0
  67.    628 2020 1
  68.    628 2019 1
  69.    628 2018 0
  70.    628 2017 0
  71.    628 2016 1
  72.    628 2015 0
  73.    628 2014 1
  74.    628 2013 0
  75.    628 2012 0
  76.    713 2020 1
  77.    713 2019 0
  78.    713 2018 0
  79.    713 2017 1
  80.    713 2016 0
  81.    713 2015 1
  82.    713 2014 0
  83.    713 2013 0
  84.    713 2012 1
  85.    718 2020 1
  86.    718 2019 0
  87.    718 2018 1
  88.    718 2017 0
  89.    718 2016 1
  90.    718 2015 1
  91.    718 2014 1
  92.    718 2013 1
  93.    718 2012 0
  94.    727 2020 1
  95.    727 2019 1
  96.    727 2018 0
  97.    727 2017 1
  98.    727 2016 0
  99.    727 2015 0
  100.    727 2014 1
  101.    727 2013 0
  102.    727 2012 0
  103.    786 2020 1
  104. end
复制代码



二维码

扫码加我 拉你入群

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

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

关键词:循环语句 generated generate example float

沙发
逍遥梦蝶 发表于 2022-8-15 09:25:26 |只看作者 |坛友微信交流群
  1. sort code year
  2. egen x = tag(code D) if D == 1
  3. by code: replace x = 1 if x[_n-1] == 1
复制代码

使用道具

藤椅
bbsflyingsnow 发表于 2022-8-15 10:07:51 |只看作者 |坛友微信交流群
逍遥梦蝶 发表于 2022-8-15 09:25
感谢大神,感谢大神!

使用道具

板凳
黃河泉 在职认证  发表于 2022-8-16 08:39:15 |只看作者 |坛友微信交流群
也可 ssc install rangestat 并试试
  1. rangestat (max) D, interval(year . 0) by(code)
复制代码

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-18 01:23