楼主: xiaoxu0.0
929 4

[编程问题求助] 如何将变量首次从0变为1的样本(不包括全部为非0)新增一个变量将其全部设置为1? [推广有奖]

  • 3关注
  • 0粉丝

博士生

48%

还不是VIP/贵宾

-

威望
0
论坛币
1049 个
通用积分
33.5139
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2032 点
帖子
91
精华
0
在线时间
508 小时
注册时间
2020-9-5
最后登录
2025-11-20

楼主
xiaoxu0.0 在职认证  学生认证  发表于 2023-1-1 14:06:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
比如,如下图所示,id=1和id=2的样本中的变量s出现了从0到1的转变,那么我就新生成一个变量r将id=1和id=2的样本全部设置为1;而id=3的样本全为0,不满足从0到1的转变,则新生成一个变量r将id=3的样本全部设置为0;而id=4的样本全为非0,不满足从0到1的转变,则新生成一个变量r将id=4的样本全部设置为0,请问各位伙伴如何实现从第一份数据到第二份数据的转变?
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input float(id year s)
  4. 1 2000 0
  5. 1 2001 1
  6. 1 2002 0
  7. 2 2001 0
  8. 2 2002 0
  9. 2 2003 1
  10. 3 2003 0
  11. 3 2004 0
  12. 3 2005 0
  13. 4 2003 1
  14. 4 2004 1
  15. 4 2005 1
  16. end
复制代码



  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input float(id year s r)
  4. 1 2000 0 1
  5. 1 2001 1 1
  6. 1 2002 0 1
  7. 2 2001 0 1
  8. 2 2002 0 1
  9. 2 2003 1 1
  10. 3 2003 0 0
  11. 3 2004 0 0
  12. 3 2005 0 0
  13. 4 2003 1 0
  14. 4 2004 1 0
  15. 4 2005 1 0
  16. end
复制代码







二维码

扫码加我 拉你入群

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

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

关键词:generated generate install example Stall

回帖推荐

黃河泉 发表于2楼  查看完整内容

请试试

沙发
黃河泉 在职认证  发表于 2023-1-1 16:20:02
请试试
  1. bys id (year): gen d = (s==1)&(s[_n-1]==0)
  2. bys id: egen wanted= max(d)
复制代码

藤椅
xiaoxu0.0 在职认证  学生认证  发表于 2023-1-1 19:26:12
黃河泉 发表于 2023-1-1 16:20
请试试
谢谢黄老师!亲测好使,同时我想问一下 这个year为什么要加括号(),学生以前没有遇到过,不太明白具体含义。

板凳
黃河泉 在职认证  发表于 2023-1-1 22:06:18
xiaoxu0.0 发表于 2023-1-1 19:26
谢谢黄老师!亲测好使,同时我想问一下 这个year为什么要加括号(),学生以前没有遇到过,不太明白具体含 ...
下列两者是等价的:
  1. bys id (year): ...

  2. sort id year
  3. by id: ...
复制代码

报纸
xiaoxu0.0 在职认证  学生认证  发表于 2023-1-2 14:23:56
黃河泉 发表于 2023-1-1 22:06
下列两者是等价的:
好,学生明白了,再次感谢老师!

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

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