楼主: nengxuanwu
1467 3

[编程问题求助] 如何对一列数据分段求和 [推广有奖]

  • 0关注
  • 0粉丝

已卖:2份资源

大专生

41%

还不是VIP/贵宾

-

威望
0
论坛币
4922 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1296 点
帖子
17
精华
0
在线时间
78 小时
注册时间
2017-3-14
最后登录
2022-3-21

楼主
nengxuanwu 发表于 2021-10-17 19:38:33 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
数据示例如下:A列有0、1、2三种,我想求A列的每段1和2之间的B列的sum,这个结果填到C列里。
  A  B  C
  0  0  0
  1  2  2
  0  4  6
  0  5  11
  0  3  14
  2  0  0
  0  0  0
  0  0  0
  1  3  3
  0  6  9
  0  7  16
  2  0  0

现在的C列是我手工计算的结果,就是想要得到的结果。

请大神不吝赐教,十分感谢!
二维码

扫码加我 拉你入群

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

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

关键词:Sum 论坛币

沙发
小胖125 在职认证  发表于 2021-10-17 19:45:11 来自手机
nengxuanwu 发表于 2021-10-17 19:38
数据示例如下:A列有0、1、2三种,我想求A列的每段1和2之间的B列的sum,这个结果填到C列里。
  A  B  C
  ...
感谢分享

藤椅
qianchen 发表于 2021-10-25 22:00:25 来自手机
nengxuanwu 发表于 2021-10-17 19:38
数据示例如下:A列有0、1、2三种,我想求A列的每段1和2之间的B列的sum,这个结果填到C列里。
  A  B  C
  ...
我可以做

板凳
黃河泉 在职认证  发表于 2021-10-26 16:20:22
我帮你问了,两位大牛的回答如下:
  1. // https://bbs.pinggu.org/thread-10785498-1-1.html
  2. * Example generated by -dataex-. For more info, type help dataex
  3. clear
  4. input float(A B C)
  5. 0 0  0
  6. 1 2  2
  7. 0 4  6
  8. 0 5 11
  9. 0 3 14
  10. 2 0  0
  11. 0 0  0
  12. 0 0  0
  13. 1 3  3
  14. 0 6  9
  15. 0 7 16
  16. 2 0  0
  17. end

  18. // https://www.statalist.org/forums/forum/general-stata-discussion/general/1633248-cumulative-sum-betwee-1-and-2
  19. // Maarten Buis
  20. gen order = _n
  21. gen id = sum(A==1) if sum(A==1) != sum(A==2)
  22. bys id (order) : gen wanted = sum(B) if !missing(id)
  23. sort order
  24. list, sepby(id)

  25. // Nick Cox (Please ssc install tsspell)
  26. gen t = _n
  27. tsset t
  28. tsspell, fcond(A > 0)
  29. bysort _spell (_seq) : gen wanted = sum(B) if A[1] == 1
  30. sort t
  31. list, sepby(_spell)  
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 热心帮助其他会员

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

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

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