楼主: 笨笨帆
2694 5

[编程问题求助] 用stata标记部分数据 [推广有奖]

  • 0关注
  • 0粉丝

已卖:2份资源

博士生

55%

还不是VIP/贵宾

-

威望
0
论坛币
175 个
通用积分
3.3056
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1136 点
帖子
46
精华
0
在线时间
527 小时
注册时间
2018-9-8
最后登录
2024-7-23

楼主
笨笨帆 发表于 2020-10-27 09:38:56 |AI写论文
2论坛币
stata如何标记一组数据中连续时间的第一段数据,数据结构如下
id        var1        year
2        A        2003
2        A        2004
2        A        2005
2        A        2011
2        A        2012
2        A        2013
2        A        2014
16        BN        2011
16        BN        2012
35        C        2008
35        C        2009
43        D        2011
43        D        2013
现在想把时间(year)连续的id的第一段连续时间用n=1标记出来,如下所示
n        id        var1        year
1        2        A        2003
1        2        A        2004
1        2        A        2005
        2        A        2011
        2        A        2012
        2        A        2013
        2        A        2014
1        16        BN        2011
1        16        BN        2012
1        35        C        2008
1        35        C        2009
1        43        D        2011
        43        D        2013
请问stata代码怎么写,谢谢!

最佳答案

黃河泉 查看完整内容

请 ssc install tsspell,其中的 _spell 应该就是你所要的 (或许再处理一下)。
关键词:Stata 部分数据 tata year 连续时间

沙发
黃河泉 在职认证  发表于 2020-10-27 09:38:57
请 ssc install tsspell,
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input float id str8 var1 float year
  4. 2 "A"  2003
  5. 2 "A"  2004
  6. 2 "A"  2005
  7. 2 "A"  2011
  8. 2 "A"  2012
  9. 2 "A"  2013
  10. 2 "A"  2014
  11. 16 "BN" 2011
  12. 16 "BN" 2012
  13. 35 "C"  2008
  14. 35 "C"  2009
  15. 43 "D"  2011
  16. 43 "D"  2013
  17. end

  18. xtset id year
  19. encode var1, gen(v1)
  20. tsspell v1
复制代码
其中的 _spell 应该就是你所要的 (或许再处理一下)。

藤椅
笨笨帆 发表于 2020-10-27 11:03:10
黃河泉 发表于 2020-10-27 10:18
请 ssc install tsspell,其中的 _spell 应该就是你所要的 (或许再处理一下)。
id        var1        year        v1        _spell
16        BN        2011        BN        1
16        BN        2012        BN        1
35        C        2008        C        1
35        C        2009        C        1
谢谢老师,太厉害了,还想多问一点,我如何把同一id有多个_spell值(如有1,2)的删去,只保留上图中这种每个id只有一个_spell值(只有1)


板凳
黃河泉 在职认证  发表于 2020-10-27 15:39:27
笨笨帆 发表于 2020-10-27 11:03
id        var1        year        v1        _spell
16        BN        2011        BN        1
16        BN        2012        BN        1
试试
  1. keep if _spell==1
复制代码

报纸
笨笨帆 发表于 2020-10-27 19:12:05
黃河泉 发表于 2020-10-27 15:39
试试
id        var1        year        v1        _spell
2        A        2003        A        1
2        A        2004        A        1
2        A        2005        A        1
16        BN        2011        BN        1
16        BN        2012        BN        1
35        C        2008        C        1
35        C        2009        C        1
43        D        2011        D        1
这个不行的,还会把A和D的第一段时间数据留下,但还是谢谢您,我再想想办法

地板
黃河泉 在职认证  发表于 2020-10-28 07:28:38
笨笨帆 发表于 2020-10-27 19:12
id        var1        year        v1        _spell
2        A        2003        A        1
2        A        2004        A        1
如若这不是你所要的,大概是我理解错你的问题。

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

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