楼主: 重大Michael
3297 10

[面板数据求助] 如何分组求最大的四个数之和 [推广有奖]

  • 2关注
  • 7粉丝

学术垃圾

已卖:754份资源

博士生

1%

还不是VIP/贵宾

-

威望
0
论坛币
15421 个
通用积分
56.3989
学术水平
3 点
热心指数
7 点
信用等级
7 点
经验
3076 点
帖子
46
精华
0
在线时间
370 小时
注册时间
2019-9-8
最后登录
2023-8-17

楼主
重大Michael 学生认证  发表于 2020-10-23 15:55:31 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如图,我需要计算出每年每个行业里面营业收入前四的企业加总起来,查找最大值可以egen A=max(营业收入),by(year code),分类加总也可以egen B=sum(营业收入),by(year code),但是如何才能只加总前四大呢,希望大神们赐教,数据我只截了2019年的部分数据{:3_57:}
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input int year str3 Code double 营业收入
  4. 2019 "B06"   7622552186.5
  5. 2019 "B06"  6689580533.41
  6. 2019 "B06"  6457638387.02
  7. 2019 "B06"  6001973173.87
  8. 2019 "B06"  5902613243.41
  9. 2019 "B06"  5553987177.55
  10. 2019 "B06"  5532550965.24
  11. 2019 "B06"  4056150396.95
  12. 2019 "B06"  3579876520.95
  13. 2019 "B06"  2153672885.77
  14. 2019 "B07"   2.966193e+12
  15. 2019 "B07"    2.51681e+12
  16. 2019 "B07" 14041598393.98
  17. 2019 "B07"  6070018544.57
  18. 2019 "B07"  2783632565.29
  19. 2019 "B07"  1886941951.18
  20. 2019 "B07"  1530646879.85
  21. 2019 "B08"  5799939573.98
  22. 2019 "B08"  5672719414.57
  23. 2019 "B08"     3718283310
  24. 2019 "B08"  1374877603.77
  25. 2019 "B08"  1335920163.46
  26. 2019 "B08"   656640531.62
  27. 2019 "B09"   136097978018
  28. 2019 "B09" 68676565008.79
  29. 2019 "B09" 62630699276.39
  30. 2019 "B09" 38963448479.35
  31. 2019 "B09" 37314269058.78
  32. 2019 "B09"    30566841834
  33. 2019 "B09" 16403340800.23
  34. 2019 "B09" 13829217053.36
  35. 2019 "B09" 11077988721.23
  36. 2019 "B09"  9151479191.07
  37. 2019 "B09"   6068463320.8
  38. 2019 "B09"  1519274646.32
  39. 2019 "B09"  1020530162.26
  40. 2019 "B09"   873661361.57
  41. 2019 "B09"   515388115.28
  42. 2019 "B09"   215147884.37
  43. 2019 "B09"    26816579.91
  44. 2019 "B10"   808843355.91
  45. 2019 "B11"    69870147000
  46. 2019 "B11"  65053897862.6
  47. 2019 "B11" 33463292568.99
  48. 2019 "B11"    31135149996
  49. 2019 "B11" 14710394330.48
  50. 2019 "B11"  5902412006.06
  51. 2019 "B11"   174530530.65
  52. 2019 "B11"    96836816.77
  53. 2019 "C13"   170743420000
  54. 2019 "C13" 82050539486.67
  55. 2019 "C13" 60309731762.99
  56. 2019 "C13"  47612587464.5
  57. 2019 "C13"  37555118255.7
  58. 2019 "C13" 24517770453.37
  59. 2019 "C13"  5788080067.37
  60. 2019 "C13"  5727004023.95
  61. 2019 "C13"  5266663002.38
  62. end
复制代码



二维码

扫码加我 拉你入群

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

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

关键词:最大的 generated generate install example

Avoid Procrastination.

沙发
重大Michael 学生认证  发表于 2020-10-23 17:44:31
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input float ID double 营业收入
  4. 1    1.52063e+11
  5. 1    71268417000
  6. 1    34844387552
  7. 1 31737455934.84
  8. 1 30289161376.44
  9. 1  27940631634.6
  10. 1 22904559924.41
  11. 1  21427676688.2
  12. 1 16942353235.94
  13. 1 14292702713.61
  14. 1 10453809987.39
  15. 1  9775717728.67
  16. 1   206077766.86
  17. 2    2.08197e+11
  18. 2    88872409000
  19. 2 50720077222.02
  20. 2    48768344872
  21. 2 42966045679.07
  22. 2 37569080704.76
  23. 2 30372415725.93
  24. 2 25068638898.11
  25. 2 22426279899.93
  26. 2 17413904871.28
  27. 2 15586876159.88
  28. 2 14417932479.23
  29. 2 10080627752.05
  30. 2  8055593735.84
  31. 2   221012544.47
  32. 3     2.5026e+11
  33. 3    87291670000
  34. 3 71517239770.43
  35. 3    59673546400
  36. 3   240804748.71
  37. 4    2.83797e+11
  38. 4 29500131501.66
  39. 4 26169215694.62
  40. 4 25833698643.75
  41. 4 25063549124.65
  42. 4 20550069864.91
  43. 4  19199966280.2
  44. 4 19151972461.56
  45. 4 17435476634.03
  46. 4 11165836307.91
  47. 4    10843633000
  48. 4  8461012971.48
  49. 4  8140266159.43
  50. 4  7812147259.62
  51. 4  7274115642.96
  52. end
复制代码

现在问题简化成这样了,就是求每一个ID中,序列前四个之和(已经降序排列了),生成新的变量,希望大神们帮帮小弟,实在想不出什么好的方法了

藤椅
黃河泉 在职认证  发表于 2020-10-24 08:18:12
试试
  1. gsort year Code -营业收入
  2. by year Code: egen tem  = total(营业收入) if _n < 5
  3. by year Code: egen wanted = mean(tem)
复制代码

板凳
重大Michael 学生认证  发表于 2020-10-24 10:17:28
黃河泉 发表于 2020-10-24 08:18
试试
感谢黄老师指点,但是这样做只能得出第一组的结果,by year Code好像没有起到作用,后面的都没有算出来

报纸
重大Michael 学生认证  发表于 2020-10-24 10:28:37
黃河泉 发表于 2020-10-24 08:18
试试
----------------------- copy starting from the next line -----------------------
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input int year str3 Code double 营业收入
  4. 2010 "B06"    1.52063e+11
  5. 2010 "B06"    71268417000
  6. 2010 "B06"    34844387552
  7. 2010 "B06" 31737455934.84
  8. 2010 "B06" 30289161376.44
  9. 2010 "B06"  27940631634.6
  10. 2010 "B06" 22904559924.41
  11. 2010 "B06"  21427676688.2
  12. 2010 "B06" 16942353235.94
  13. 2010 "B06" 14292702713.61
  14. 2010 "B06" 10453809987.39
  15. 2010 "B06"  9775717728.67
  16. 2010 "B06"  8858747363.99
  17. 2010 "B06"  7008525787.53
  18. 2010 "B06"  6990249026.87
  19. 2010 "B06"   5811572148.3
  20. 2010 "B06"  5672329913.49
  21. 2010 "B06"  5469241526.08
  22. 2010 "B06"  4047165454.24
  23. 2010 "B06"  3226243812.41
  24. 2010 "B06"  1199074046.51
  25. 2010 "B06"   775883634.06
  26. 2010 "B06"   470966770.95
  27. 2010 "B06"   242901001.29
  28. 2010 "B06"   206077766.86
  29. 2010 "B07"   1.913182e+12
  30. 2010 "B07"   1.465415e+12
  31. 2010 "B07"  3789446478.55
  32. 2010 "B07"  3523437709.56
  33. 2010 "B07"   902001635.62
  34. 2010 "B07"   563970462.84
  35. 2010 "B07"   200520141.16
  36. 2010 "B08"  2479530110.71
  37. 2010 "B08"  1540402459.16
  38. 2010 "B08"   716336433.76
  39. 2010 "B08"   506620095.05
  40. 2010 "B08"   468845001.52
  41. 2010 "B08"              .
  42. 2010 "B09" 31514701788.92
  43. 2010 "B09"    28539578900
  44. 2010 "B09" 21647386402.33
  45. 2010 "B09"    18511447284
  46. 2010 "B09"   7062859478.3
  47. 2010 "B09"  5954332058.89
  48. 2010 "B09"  4851542169.39
  49. 2010 "B09"  4496966550.62
  50. 2010 "B09"  2879499753.01
  51. 2010 "B09"  1196613685.14
  52. 2010 "B09"  1119684695.75
  53. 2010 "B09"  1038083176.38
  54. 2010 "B09"   397805150.14
  55. 2010 "B09"   338767212.05
  56. 2010 "B09"   231534048.83
  57. 2010 "B09"   231384545.25
  58. 2010 "B09"    83885336.69
  59. 2010 "B09"    64602258.25
  60. 2010 "B09"    18359687.95
  61. 2010 "B09"              0
  62. 2010 "B09"              .
  63. 2010 "B09"              .
  64. 2010 "B10"              .
  65. 2010 "B11"    18059856834
  66. 2010 "B11"    16348366000
  67. 2010 "B11"  7137707078.32
  68. 2010 "B11"  2127921746.52
  69. 2010 "B11"  1328229188.04
  70. 2010 "B11"   430362844.74
  71. 2010 "B11"    361061851.3
  72. 2010 "B11"   301555704.46
  73. 2010 "B11"   296393820.68
  74. 2010 "B11"   205744068.96
  75. 2010 "B11"   108924462.34
  76. 2010 "B11"     97302362.2
  77. 2010 "B11"              .
  78. 2010 "B11"              .
  79. 2010 "B11"              .
  80. 2010 "B11"              .
  81. 2010 "B11"              .
  82. 2010 "C13"    93315380000
  83. 2010 "C13" 36310260747.81
  84. 2010 "C13"  9621581051.38
  85. 2010 "C13"  7785165151.96
  86. 2010 "C13"  7697692263.07
  87. 2010 "C13"  7427271334.33
  88. 2010 "C13"  5643423521.04
  89. 2010 "C13"  5248384826.76
  90. 2010 "C13"  4379681542.07
  91. 2010 "C13"  3875019021.35
  92. 2010 "C13"  2960571931.63
  93. 2010 "C13"  2936583715.48
  94. 2010 "C13"  2369046039.49
  95. 2010 "C13"  2143820269.05
  96. 2010 "C13"  2035940102.75
  97. 2010 "C13"  1705623970.31
  98. 2010 "C13"  1511963570.21
  99. 2010 "C13"  1436591754.67
  100. 2010 "C13"  1252357496.94
  101. 2010 "C13"  1236563041.16
  102. 2010 "C13"   1202895618.9
  103. 2010 "C13"  1162208056.26
  104. end
复制代码
------------------ copy up to and including the previous line ------------------

给一个大一点的数据集您试一下

地板
黃河泉 在职认证  发表于 2020-10-24 11:34:21
重大Michael 发表于 2020-10-24 10:17
感谢黄老师指点,但是这样做只能得出第一组的结果,by year Code好像没有起到作用,后面的都没有算出来[e ...
不可能吧?

7
重大Michael 学生认证  发表于 2020-10-24 11:46:02
黃河泉 发表于 2020-10-24 11:34
不可能吧?
理论上应该是可以的,我之前写的命令也与您类似,就是只能算第一组,后面就不动了,所以我才想用循环来做,但是新手不懂怎么才能在每一个分组里面去运行命令

8
黃河泉 在职认证  发表于 2020-10-24 12:10:31
重大Michael 发表于 2020-10-24 11:46
理论上应该是可以的,我之前写的命令也与您类似,就是只能算第一组,后面就不动了,所以我才想用循环来做 ...
根据你的资料,我做过的是没问题,你是不是弄错了?
  1. gsort year Code -营业收入
  2. by year Code: egen tem  = total(营业收入) if _n < 5
  3. by year Code: egen wanted = mean(tem)
  4. format wanted %16.0f
复制代码
结果为:
  1. . list year Code 营业收入 wanted, sepby(year Code)

  2.      +-----------------------------------------+
  3.      | year   Code    营业收入          wanted |
  4.      |-----------------------------------------|
  5.   1. | 2010    B06   1.521e+11    289913274368 |
  6.   2. | 2010    B06   7.127e+10    289913274368 |
  7.   3. | 2010    B06   3.484e+10    289913274368 |
  8.   4. | 2010    B06   3.174e+10    289913274368 |
  9.   5. | 2010    B06   3.029e+10    289913274368 |
  10.   6. | 2010    B06   2.794e+10    289913274368 |
  11.   7. | 2010    B06   2.290e+10    289913274368 |
  12.   8. | 2010    B06   2.143e+10    289913274368 |
  13.   9. | 2010    B06   1.694e+10    289913274368 |
  14. 10. | 2010    B06   1.429e+10    289913274368 |
  15. 11. | 2010    B06   1.045e+10    289913274368 |
  16. 12. | 2010    B06   9.776e+09    289913274368 |
  17. 13. | 2010    B06   8.859e+09    289913274368 |
  18. 14. | 2010    B06   7.009e+09    289913274368 |
  19. 15. | 2010    B06   6.990e+09    289913274368 |
  20. 16. | 2010    B06   5.812e+09    289913274368 |
  21. 17. | 2010    B06   5.672e+09    289913274368 |
  22. 18. | 2010    B06   5.469e+09    289913274368 |
  23. 19. | 2010    B06   4.047e+09    289913274368 |
  24. 20. | 2010    B06   3.226e+09    289913274368 |
  25. 21. | 2010    B06   1.199e+09    289913274368 |
  26. 22. | 2010    B06   7.759e+08    289913274368 |
  27. 23. | 2010    B06   4.710e+08    289913274368 |
  28. 24. | 2010    B06   2.429e+08    289913274368 |
  29. 25. | 2010    B06   2.061e+08    289913274368 |
  30.      |-----------------------------------------|
  31. 26. | 2010    B07   1.913e+12   3385909837824 |
  32. 27. | 2010    B07   1.465e+12   3385909837824 |
  33. 28. | 2010    B07   3.789e+09   3385909837824 |
  34. 29. | 2010    B07   3.523e+09   3385909837824 |
  35. 30. | 2010    B07   9.020e+08   3385909837824 |
  36. 31. | 2010    B07   5.640e+08   3385909837824 |
  37. 32. | 2010    B07   2.005e+08   3385909837824 |
  38.      |-----------------------------------------|
  39. 33. | 2010    B08   2.480e+09      5242889216 |
  40. 34. | 2010    B08   1.540e+09      5242889216 |
  41. 35. | 2010    B08   7.163e+08      5242889216 |
  42. 36. | 2010    B08   5.066e+08      5242889216 |
  43. 37. | 2010    B08   4.688e+08      5242889216 |
  44. 38. | 2010    B08           .      5242889216 |
  45.      |-----------------------------------------|
  46. 39. | 2010    B09   3.151e+10    100213112832 |
  47. 40. | 2010    B09   2.854e+10    100213112832 |
  48. 41. | 2010    B09   2.165e+10    100213112832 |
  49. 42. | 2010    B09   1.851e+10    100213112832 |
  50. 43. | 2010    B09   7.063e+09    100213112832 |
  51. 44. | 2010    B09   5.954e+09    100213112832 |
  52. 45. | 2010    B09   4.852e+09    100213112832 |
  53. 46. | 2010    B09   4.497e+09    100213112832 |
  54. 47. | 2010    B09   2.879e+09    100213112832 |
  55. 48. | 2010    B09   1.197e+09    100213112832 |
  56. 49. | 2010    B09   1.120e+09    100213112832 |
  57. 50. | 2010    B09   1.038e+09    100213112832 |
  58. 51. | 2010    B09   3.978e+08    100213112832 |
  59. 52. | 2010    B09   3.388e+08    100213112832 |
  60. 53. | 2010    B09   2.315e+08    100213112832 |
  61. 54. | 2010    B09   2.314e+08    100213112832 |
  62. 55. | 2010    B09    83885337    100213112832 |
  63. 56. | 2010    B09    64602258    100213112832 |
  64. 57. | 2010    B09    18359688    100213112832 |
  65. 58. | 2010    B09           0    100213112832 |
  66. 59. | 2010    B09           .    100213112832 |
  67. 60. | 2010    B09           .    100213112832 |
  68.      |-----------------------------------------|
  69. 61. | 2010    B10           .               0 |
  70.      |-----------------------------------------|
  71. 62. | 2010    B11   1.806e+10     43673849856 |
  72. 63. | 2010    B11   1.635e+10     43673849856 |
  73. 64. | 2010    B11   7.138e+09     43673849856 |
  74. 65. | 2010    B11   2.128e+09     43673849856 |
  75. 66. | 2010    B11   1.328e+09     43673849856 |
  76. 67. | 2010    B11   4.304e+08     43673849856 |
  77. 68. | 2010    B11   3.611e+08     43673849856 |
  78. 69. | 2010    B11   3.016e+08     43673849856 |
  79. 70. | 2010    B11   2.964e+08     43673849856 |
  80. 71. | 2010    B11   2.057e+08     43673849856 |
  81. 72. | 2010    B11   1.089e+08     43673849856 |
  82. 73. | 2010    B11    97302362     43673849856 |
  83. 74. | 2010    B11           .     43673849856 |
  84. 75. | 2010    B11           .     43673849856 |
  85. 76. | 2010    B11           .     43673849856 |
  86. 77. | 2010    B11           .     43673849856 |
  87. 78. | 2010    B11           .     43673849856 |
  88.      |-----------------------------------------|
  89. 79. | 2010    C13   9.332e+10    147032391680 |
  90. 80. | 2010    C13   3.631e+10    147032391680 |
  91. 81. | 2010    C13   9.622e+09    147032391680 |
  92. 82. | 2010    C13   7.785e+09    147032391680 |
  93. 83. | 2010    C13   7.698e+09    147032391680 |
  94. 84. | 2010    C13   7.427e+09    147032391680 |
  95. 85. | 2010    C13   5.643e+09    147032391680 |
  96. 86. | 2010    C13   5.248e+09    147032391680 |
  97. 87. | 2010    C13   4.380e+09    147032391680 |
  98. 88. | 2010    C13   3.875e+09    147032391680 |
  99. 89. | 2010    C13   2.961e+09    147032391680 |
  100. 90. | 2010    C13   2.937e+09    147032391680 |
  101. 91. | 2010    C13   2.369e+09    147032391680 |
  102. 92. | 2010    C13   2.144e+09    147032391680 |
  103. 93. | 2010    C13   2.036e+09    147032391680 |
  104. 94. | 2010    C13   1.706e+09    147032391680 |
  105. 95. | 2010    C13   1.512e+09    147032391680 |
  106. 96. | 2010    C13   1.437e+09    147032391680 |
  107. 97. | 2010    C13   1.252e+09    147032391680 |
  108. 98. | 2010    C13   1.237e+09    147032391680 |
  109. 99. | 2010    C13   1.203e+09    147032391680 |
  110. 100. | 2010    C13   1.162e+09    147032391680 |
  111.      +-----------------------------------------+
复制代码

9
蓝色 发表于 2020-10-24 13:37:09
  1. gsort year Code -营业收入
  2. by year Code: gen id=_n
  3. by year Code: egen tem  = total(营业收入) if id < 5
  4. by year Code: egen wanted = mean(tem)
复制代码

10
重大Michael 学生认证  发表于 2020-10-24 13:45:14
蓝色 发表于 2020-10-24 13:37
非常感谢您的指导,这样确实可以达到目的,但我还是想追问一下,为什么加个排序就可以循环起来了呢?

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

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