楼主: zdlspace
805 0

[程序分享] 回答一个坛友提出的问题 [推广有奖]

  • 1关注
  • 83粉丝

已卖:1037份资源

学科带头人

93%

还不是VIP/贵宾

-

威望
2
论坛币
5234 个
通用积分
8133.7812
学术水平
520 点
热心指数
536 点
信用等级
509 点
经验
52340 点
帖子
1681
精华
0
在线时间
2717 小时
注册时间
2013-7-21
最后登录
2025-11-22

楼主
zdlspace 学生认证  发表于 2021-1-19 14:41:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
下面是一个坛友的数据处理需求:

运算逻辑:
若2018年crise为1,则2018年crisedown为1;
若2017年crise为1,或2018年cirsedown为1且2017年down为1,则2017年crisedown为1。
若2016年crise为1,或2017年cirsedown为1且2016年down为1,则2016年crisedown为1。
以此依次类推直到2001年。

样本数据如下:注意crisedown为结果并非开始就有的数据* Example generated by -dataex-. To install: ssc install dataex
clear
input int year float(down crise) double crisedown
2001 0 0 0
2002 1 1 1
2003 0 0 0
2004 0 0 0
2005 0 0 0
2006 0 0 0
2007 1 0 0
2008 0 0 0
2009 1 0 0
2010 0 0 0
2011 1 0 0
2012 0 0 0
2013 1 0 0
2014 0 0 0
2015 1 0 1
2016 1 1 1
2017 0 1 1
2018 0 0 0
end






这位坛友用循环折腾了半天还报错了,其实没必要用循环,两行命令即可搞定。


  1. clear
  2. input int year float(down crise)
  3. 2001 0 0
  4. 2002 1 1
  5. 2003 0 0
  6. 2004 0 0
  7. 2005 0 0
  8. 2006 0 0
  9. 2007 1 0
  10. 2008 0 0
  11. 2009 1 0
  12. 2010 0 0
  13. 2011 1 0
  14. 2012 0 0
  15. 2013 1 0
  16. 2014 0 0
  17. 2015 1 0
  18. 2016 1 1
  19. 2017 0 1
  20. 2018 0 0
  21. end
  22. tsset year
  23. gen crisedown=(crise==1)
  24. replace crisedown=1 if F.crisedown==1 & down==1

  25. list

  26.      +-----------------------------------------+
  27.      | year   down   crise   crised~n   wanted |
  28.      |-----------------------------------------|
  29.   1. | 2001      0       0          0        0 |
  30.   2. | 2002      1       1          1        1 |
  31.   3. | 2003      0       0          0        0 |
  32.   4. | 2004      0       0          0        0 |
  33.   5. | 2005      0       0          0        0 |
  34.      |-----------------------------------------|
  35.   6. | 2006      0       0          0        0 |
  36.   7. | 2007      1       0          0        0 |
  37.   8. | 2008      0       0          0        0 |
  38.   9. | 2009      1       0          0        0 |
  39. 10. | 2010      0       0          0        0 |
  40.      |-----------------------------------------|
  41. 11. | 2011      1       0          0        0 |
  42. 12. | 2012      0       0          0        0 |
  43. 13. | 2013      1       0          0        0 |
  44. 14. | 2014      0       0          0        0 |
  45. 15. | 2015      1       0          1        1 |
  46.      |-----------------------------------------|
  47. 16. | 2016      1       1          1        1 |
  48. 17. | 2017      0       1          1        1 |
  49. 18. | 2018      0       0          0        0 |
  50.      +-----------------------------------------+
复制代码




二维码

扫码加我 拉你入群

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

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

关键词:Microsoft generated forvalues forvalue generate

已有 2 人评分学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 热心帮助其他会员
chentibiao + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 8  热心指数 + 8  信用等级 + 8   查看全部评分

Raymond
Stata 17.0, MP(4)

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

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