楼主: wslver
1187 4

[数据管理求助] 关于设置新变量的条件检索操作 [推广有奖]

  • 1关注
  • 0粉丝

本科生

68%

还不是VIP/贵宾

-

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

楼主
wslver 发表于 2021-1-2 21:27:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
关于设置新变量的检索,条件如下
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input float(code year var1 var2)
  4. 1 2000 1 100
  5. 1 2001 2 200
  6. 1 2002 3 150
  7. 1 2003 4 105
  8. 1 2004 5 177
  9. 1 2005 6 101
  10. 2 2000 2  98
  11. 2 2001 3  97
  12. 2 2002 4 123
  13. 2 2003 5 144
  14. 2 2004 6 70
  15. 2 2005 7 100
  16. 2 2006 8  88
  17. 2 2007 9  65
  18. 3 2000 3 109
  19. 3 2001 4  43
  20. 3 2002 5  98
  21. 3 2003 6 199
  22. 3 2004 7 270
  23. 3 2005 8  80
  24. end
复制代码



期望的结果:
产生新的变量var3,当对应的var1在本年之前的任何year任何code出现,判断当年的var2是否<100,是则取1,否则取0

例如:
我想研究code为1,year为2005,var1为6的这条样本的var3
发现var1为6的情况在
code为2,year为2004
code为3,year为2003
这两个样本出现过,其中一个var2<100
所以最开始的那条样本的var3取1

请问各位老师,学者,如何批量操作

二维码

扫码加我 拉你入群

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

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

关键词:新变量 generated generate install example

沙发
黃河泉 在职认证  发表于 2021-1-3 10:33:05
请看看这个是你要的吗?
  1. bysort var1 (year): gen d1 = _n > 1
  2. gen d2 = var2 < 100
  3. // ssc install rangstat
  4. rangestat (max) d2, interval(year . 0) by(var1)
  5. gen wanted = d1*d2_max
复制代码

藤椅
wslver 发表于 2021-1-3 19:15:21
黃河泉 发表于 2021-1-3 10:33
请看看这个是你要的吗?
谢谢老师的方法分享,有一个小问题。
对应的var1在本年之前的任何year任何code,这里的year不能包括本年
例如2006,对应的为2005及以前
请问您是否有方法能解决?

板凳
黃河泉 在职认证  发表于 2021-1-4 07:50:33
wslver 发表于 2021-1-3 19:15
谢谢老师的方法分享,有一个小问题。
对应的var1在本年之前的任何year任何code,这里的year不能包括本年 ...
若我没误解你的意思,请更改
  1. rangestat (max) d2, interval(year . -1) by(var1)
复制代码

报纸
wslver 发表于 2021-1-14 21:56:17
黃河泉 发表于 2021-1-4 07:50
若我没误解你的意思,请更改
谢谢老师,您的代码完全符合我的需求!

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

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