楼主: diannaoasd
617 2

[编程问题求助] 剩余所有论坛币,求一个stata代码 [推广有奖]

  • 8关注
  • 7粉丝

已卖:1336份资源

讲师

32%

还不是VIP/贵宾

-

威望
0
论坛币
79957 个
通用积分
175.2226
学术水平
9 点
热心指数
5 点
信用等级
5 点
经验
5816 点
帖子
180
精华
0
在线时间
623 小时
注册时间
2010-12-6
最后登录
2026-2-2

楼主
diannaoasd 发表于 2019-11-11 10:33:00 |AI写论文
12论坛币


如图,treat(第2列)在某一行(某一年)出现了“1”,则这一行之后的所有trend(第4列)都为“1“”。
这个代码该怎么写?
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str1 name int(year treat trend)
  4. "A" 2001 0 0
  5. "A" 2002 0 0
  6. "A" 2003 0 0
  7. "A" 2004 1 1
  8. "A" 2005 1 1
  9. "B" 2001 0 0
  10. "B" 2002 0 0
  11. "B" 2003 1 1
  12. "B" 2004 0 1
  13. "B" 2005 0 1
  14. end
复制代码






trend.png (8.44 KB)

trend.png

最佳答案

黃河泉 查看完整内容

请 ssc install rangestat,试试

沙发
黃河泉 在职认证  发表于 2019-11-11 10:33:01
请 ssc install rangestat,试试
  1. rangestat (max) treat, interval(year . 0) by(name)
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
diannaoasd + 1 + 1 + 1 精彩帖子

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

藤椅
sungmoo 发表于 2019-11-11 14:50:31 来自手机
bys name (year): replace trend=(sum(treat)>0)
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
diannaoasd + 1 + 1 + 1 精彩帖子

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

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-2-9 07:21