楼主: wslver
863 0

[数据管理求助] 有条件的滚动筛选数据 [推广有奖]

  • 1关注
  • 0粉丝

本科生

68%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
453 点
帖子
19
精华
0
在线时间
181 小时
注册时间
2020-8-25
最后登录
2022-11-24

楼主
wslver 发表于 2021-4-14 20:55:40 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input float(stkcd year id mm)
  4. 1 2001 111 1
  5. 1 2002 111 1
  6. 1 2003 222 0
  7. 1 2004 222 0
  8. 1 2005 222 0
  9. 2 2004 555 1
  10. 2 2005 555 1
  11. 4 2003 111 1
  12. 4 2004 111 1
  13. 4 2005 777 1
  14. 3 2002 444 0
  15. 3 2003 444 0
  16. 3 2004 666 1
  17. 3 2005 666 1
  18. 5 2001 888 0
  19. 5 2002 888 0
  20. 5 2003 999 0
  21. 5 2004 888 1
  22. 5 2005 888 1
  23. 5 2006 999 0
  24. 5 2007 999 0
  25. end
复制代码



希望得到的结果是:
若stkcd在当前年度的id所对应的前一种id的mm为0,那么保留当前id和前一种id所对应的所有年份的样本
若stkcd在当前年度的id的以前年度未出现过其他种类的id,那么不论mm为何值,保留当前id所对应的所有年份的样本
(有些复杂,不知道表达清楚了没有)

以stkcd为5的样本为例:
stkcd year id mm
5 2001 888 0
5 2002 888 0
5 2003 999 0
5 2004 888 1
5 2005 888 1
5 2006 999 0
5 2007 999 0
2002年以前id只有一种888,那么就保留2002年及以前年度的样本;
2003年的id是999,以前年度有过别的id,即888,但所对应的mm是0,所以保留2003年及相邻id的年度样本;
2005年的对应的前一种id的mm为0,且那么保留当年id和前一种id对应年份的样本;
2006年的对应的前一种id的mm为1,不保留当前id所对应的当年样本;
ps:重复的样本保留一次
即结果为:
stkcd year id mm
5 2001 888 0
5 2002 888 0
5 2003 999 0
5 2004 888 1
5 2005 888 1


二维码

扫码加我 拉你入群

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

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

关键词:筛选数据 generated generate install example

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-9 10:44