楼主: qcen
3635 17

[数据管理求助] 如何分段求和 stata [推广有奖]

11
qcen 发表于 2018-12-4 13:39:04
qcen 发表于 2018-12-2 10:21
感谢 感谢
x
-1
1
1
1
-1
-1
1
-1
1
-1
-1

黄老师,如何把x中最长的连续期数保留,而删除其他的。如 怎么保留最长的三个 1 . 谢谢

12
qcen 发表于 2018-12-4 13:40:50
黃河泉 发表于 2018-11-30 15:53
试试
x
-1
1
1
1
-1
-1
1
-1
1
-1
-1

黄老师,如何把x中最长的连续期数保留,而删除其他的。如 怎么保留最长的三个 1 . 谢谢

13
黃河泉 在职认证  发表于 2018-12-4 15:52:20
qcen 发表于 2018-12-4 13:40
x
-1
1
试试
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input float x
  4. -1
  5. 1
  6. 1
  7. 1
  8. -1
  9. -1
  10. 1
  11. -1
  12. 1
  13. -1
  14. -1
  15. end

  16. gen t = _n
  17. tsset t

  18. tsspell x
  19. bys _spell: egen m = max(_seq)
  20. egen mm = max(m)
  21. keep if m == mm
复制代码

14
黃河泉 在职认证  发表于 2018-12-4 15:52:47
qcen 发表于 2018-12-4 13:40
x
-1
1
尔后你若要问程序,永远附上相关资料;若附上资料,永远用 dataex 印出资料。
1.        先 ssc install dataex (并见说明),将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。
2.        并请参考 http://www.jianshu.com/p/9870080fe769,  https://bbs.pinggu.org/thread-5048204-1-1.html, 与 https://bbs.pinggu.org/thread-5917273-1-1.html

15
qcen 发表于 2018-12-4 18:54:34
黃河泉 发表于 2018-12-4 15:52
尔后你若要问程序,永远附上相关资料;若附上资料,永远用 dataex 印出资料。
1.        先 ssc install dataex ...
多谢 多谢

16
qcen 发表于 2018-12-4 20:28:17
黃河泉 发表于 2018-12-4 15:52
试试
input float(idd x)
6  .
6 -1
6  1
6 -1
6  1
7  .
7  .
8  .
8 -1
8  1
8  1
8  1
8 -1
8 -1
8  1
8 -1
8  1
8 -1
8 -1
8  1
8  1
8 -1
8 -1
8  1
8  1
8 -1
8 -1
9  .
9  0
9  0
9  .
9 -1
10  .
11  .
11  1
11 -1
11  1
11  .
11 -1
11 -1
11  1
11 -1
11 -1
12  .
12 -1
12 -1
12  1
12 -1
12 -1
12  1
12 -1
12  1
12 -1
12  1
13  .
14  .
黄老师,不好意思。其实,我是面板数据。我用 bys idd: tsspell 时,不能执行。而后,使用循环语句:
gen t = _n
tsset  t
forv i=6/8 {
if idd==`i'{
tsspell x
bys _spell: egen m = max(_seq)
egen mm = max(m)
keep if m == mm
}
}
能运行,但结果不对。再次请问您,面板数据如何达到你下午回复的结果。

17
qcen 发表于 2018-12-4 20:32:31
黃河泉 发表于 2018-12-4 15:52
尔后你若要问程序,永远附上相关资料;若附上资料,永远用 dataex 印出资料。
1.        先 ssc install dataex ...
dataex idd x in 1/56
我是用这个回复的,怎么还是这种格式。

18
qcen 发表于 2018-12-4 20:52:21
黃河泉 发表于 2018-12-4 15:52
试试
gen t = _n

. tsset  t
        time variable:  t, 1 to 56
                delta:  1 unit

. forv i=6/8 {
  2. if idd==`i'{
  3. tsspell x
  4. bys _spell: egen m = max(_seq)
  5. egen mm = max(m)
  6. keep if m == mm
  7. }
  8. }
(50 observations deleted)
warning: data contain gaps; see help on tsspell
_end already defined
r(110);
这是提示

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

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