楼主: 522746165
1255 7

[数据管理求助] stata中加总排序上比自己大的数值 [推广有奖]

  • 0关注
  • 0粉丝

博士生

68%

还不是VIP/贵宾

-

威望
0
论坛币
3340 个
通用积分
89.4326
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
7152 点
帖子
42
精华
0
在线时间
622 小时
注册时间
2013-3-20
最后登录
2024-7-29

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有办法在stata中实现第三列吗,谢谢大家啦!!!
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata

1591535132(1).png (25.65 KB)

1591535132(1).png

数据.xlsx

545.96 KB

沙发
欣心兰 发表于 2020-6-8 08:50:57 |只看作者 |坛友微信交流群
  1. foreach i of numlist 1/17 {
  2.         gen a_`i' = 数值 if 排序 > `i'
  3.         egen sum_a_`i'= sum(a_`i') if 排序 > `i'
  4.         }
  5. drop a_*

  6. gen 加总排序上比自己大的数值 = 0
  7. gen nn = _n
  8. foreach ni of numlist 1/17 {
  9.         egen bsum_`ni' = min(sum_a_`ni')
  10.         }
  11. foreach ni of numlist 1/17 {
  12.         replace 加总排序上比自己大的数值 = bsum_`ni' if nn == `ni'
  13.         }
  14. replace 加总排序上比自己大的数值 = 0 if 加总排序上比自己大的数值 == .
  15. keep 数值 排序 加总排序上比自己大的数值
复制代码

已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
522746165 + 2 + 1 + 1 + 1 精彩帖子

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

使用道具

藤椅
522746165 发表于 2020-6-8 10:01:09 |只看作者 |坛友微信交流群
欣心兰 发表于 2020-6-8 08:50
还没试,马上去试一下。先行谢过!!抱拳!!

使用道具

板凳
蓝色 发表于 2020-6-8 13:34:05 |只看作者 |坛友微信交流群
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input int num byte id
  4. 400  1
  5. 500  2
  6. 500  2
  7. 1000  4
  8. 1500  5
  9. 1500  5
  10. 1800  7
  11. 2000  8
  12. 2000  8
  13. 2000  8
  14. 2000  8
  15. 2000  8
  16. 2000  8
  17. 2000  8
  18. 2000  8
  19. 2060 16
  20. 2500 17
  21. 2500 17
  22. 2500 17
  23. end


  24. preserve

  25. collapse  (sum) num1=num ,by(id)
  26. gen wanted0=  sum(num1)
  27. egen wanted1=total(num1)
  28. gen wanted=wanted1-wanted0

  29. tempfile using_data   
  30. save "`using_data'"

  31. restore

  32. merge m:1 id using "`using_data'"
  33. keep num id wanted

  34. list
复制代码
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
522746165 + 5 + 1 + 1 + 1 精彩帖子

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

使用道具

报纸
522746165 发表于 2020-6-8 15:07:59 |只看作者 |坛友微信交流群
蓝色 发表于 2020-6-8 13:34
已经实现了,感谢大神!!如果本身带了id是否可以保留,有100多个分组(图中仅列出两个分组),要按小组分是不是要一个组一个组的去实现粘贴到一个表格里。自己也在尝试,奈何能力有限,请教,感谢!


1591600005(1).png (36.39 KB)

1591600005(1).png

数据2.xlsx

546.7 KB

使用道具

地板
522746165 发表于 2020-6-8 15:47:13 |只看作者 |坛友微信交流群
蓝色 发表于 2020-6-8 13:34
又向您新提的问题还在审核中,已经暂时用循环和append解决了,谢谢蓝色老师!

使用道具

7
黃河泉 在职认证  发表于 2020-6-8 17:51:18 |只看作者 |坛友微信交流群
1. 請 ssc install rangestat,並試試
  1. rangestat (sum) num, interval(id 1 .)
  2. * replace num_sum = 0  if num_sum == .
复制代码
2. 爾後你若要问程序,建議永远附上相关资料 (请不要用截图);若附上资料,永远用 dataex 印出资料。
•        先 ssc install dataex (并见说明),将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。
•        请参考说明 https://bbs.pinggu.org/thread-5048204-1-1.html
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
522746165 + 2 + 1 + 1 + 1 精彩帖子

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

使用道具

8
522746165 发表于 2020-6-8 19:00:16 |只看作者 |坛友微信交流群
黃河泉 发表于 2020-6-8 17:51
1. 請 ssc install rangestat,並試試2. 爾後你若要问程序,建議永远附上相关资料 (请不要用截图);若附上资 ...
好的,我下次注意!

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-10-6 17:52