楼主: 支支
25225 11

[数据管理求助] 怎么在STATA里将一列数据按照大小排列成位次 [推广有奖]

  • 2关注
  • 0粉丝

博士生

69%

还不是VIP/贵宾

-

威望
0
论坛币
4 个
通用积分
0.0004
学术水平
1 点
热心指数
2 点
信用等级
1 点
经验
706 点
帖子
184
精华
0
在线时间
473 小时
注册时间
2012-4-19
最后登录
2018-8-7

楼主
支支 发表于 2017-3-7 21:32:10 |AI写论文
50论坛币
现在要将大量企业的营业收入进行位次的排序,比如2006-2007年各企业的营业收入情况如下:
如何对同一年份同一省份同一行业的营业收入大小进行位次排序,并且统计出同一年份同一省份同一行业的企业数(赋值最大数)??

营收        年份        省份代码        行业代码        位次排序        赋值最大数
229        2006        1        110        1        2
470        2006        1        110        2        2
6        2006        1        112        1        4
124        2006        1        112        2        4
358        2006        1        112        3        4
1398        2006        1        112        4        4
213        2006        2        110        1        1
134        2006        2        111        1        3
212        2006        2        111        2        3
554        2006        2        111        3        3
69        2006        5        110        1        2
139        2006        5        110        2        2
792        2006        5        111        1        1
2099        2006        5        112        1        1
357        2006        5        113        1        1
44        2006        9        113        1        5
56        2006        9        113        2        5
89        2006        9        113        3        5
157        2006        9        113        4        5
365        2006        9        113        5        5
26        2007        1        110        1        4
99        2007        1        110        2        4
129        2007        1        110        3        4
965        2007        1        110        4        4
780        2007        1        112        1        1
1030        2007        1        113        1        1
55        2007        2        110        1        3
78        2007        2        110        2        3
654        2007        2        110        3        3
34        2007        2        111        1        2
67        2007        2        111        2        2
32        2007        2        113        1        1
90        2007        5        110        1        2
345        2007        5        110        2        2
68        2007        5        111        1        1
66        2007        9        111        1        3
148        2007        9        111        2        3
369        2007        9        111        3        3
12        2007        9        112        1        2
61        2007        9        122        2        2

请各位STATA高手指导,谢谢!

最佳答案

蓝色 查看完整内容

gsort +year +prov +ind -rev bys year prov ind: gen posid=_n bys year prov ind: egen m1 = count(rev)
关键词:Stata里数据排序 营业收入

沙发
蓝色 发表于 2017-3-7 21:32:11
gsort +year +prov +ind -rev
bys year prov ind: gen posid=_n
bys year prov ind: egen m1 = count(rev)

藤椅
夏目贵志 发表于 2017-3-8 03:42:53
用sort命令就可以了。比如sort year prov ind rev

板凳
黃河泉 在职认证  发表于 2017-3-8 07:48:56
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input float(rev year prov ind pos m)
  4. 229 2006 1 110 1 2
  5. 470 2006 1 110 2 2
  6.    6 2006 1 112 1 4
  7. 124 2006 1 112 2 4
  8. 358 2006 1 112 3 4
  9. 1398 2006 1 112 4 4
  10. 213 2006 2 110 1 1
  11. 134 2006 2 111 1 3
  12. 212 2006 2 111 2 3
  13. 554 2006 2 111 3 3
  14.   69 2006 5 110 1 2
  15. 139 2006 5 110 2 2
  16. 792 2006 5 111 1 1
  17. 2099 2006 5 112 1 1
  18. 357 2006 5 113 1 1
  19.   44 2006 9 113 1 5
  20.   56 2006 9 113 2 5
  21.   89 2006 9 113 3 5
  22. 157 2006 9 113 4 5
  23. 365 2006 9 113 5 5
  24.   26 2007 1 110 1 4
  25.   99 2007 1 110 2 4
  26. 129 2007 1 110 3 4
  27. 965 2007 1 110 4 4
  28. 780 2007 1 112 1 1
  29. 1030 2007 1 113 1 1
  30.   55 2007 2 110 1 3
  31.   78 2007 2 110 2 3
  32. 654 2007 2 110 3 3
  33.   34 2007 2 111 1 2
  34.   67 2007 2 111 2 2
  35.   32 2007 2 113 1 1
  36.   90 2007 5 110 1 2
  37. 345 2007 5 110 2 2
  38.   68 2007 5 111 1 1
  39.   66 2007 9 111 1 3
  40. 148 2007 9 111 2 3
  41. 369 2007 9 111 3 3
  42.   12 2007 9 112 1 2
  43.   61 2007 9 122 2 2
  44. end
复制代码
sort year prov ind rev
bys year prov ind: egen m1 = count(rev)

已有 1 人评分经验 热心指数 收起 理由
夏目贵志 + 5 + 1 精彩帖子

总评分: 经验 + 5  热心指数 + 1   查看全部评分

报纸
支支 发表于 2017-3-8 08:00:57
夏目贵志 发表于 2017-3-8 03:42
用sort命令就可以了。比如sort year prov ind rev
我需要生成位次序列和赋值最大数。sort命令只能排序,无法生成新的变量

地板
支支 发表于 2017-3-8 12:44:20
黃河泉 发表于 2017-3-8 07:48
sort year prov ind rev
bys year prov ind: egen m1 = count(rev)
我这样做了,能统计出同一年份同一省份同一行业的企业数(赋值最大数),但位次排序(pos)还是没法实现。

7
黃河泉 在职认证  发表于 2017-3-8 15:20:15
支支 发表于 2017-3-8 12:44
我这样做了,能统计出同一年份同一省份同一行业的企业数(赋值最大数),但位次排序(pos)还是没法实现 ...
你原先的问题有谈到这个部分吗?

8
支支 发表于 2017-3-8 16:29:52
蓝色 发表于 2017-3-8 15:01
gsort +year +prov +ind -rev
bys year prov ind: gen posid=_n
bys year prov ind: egen m1 = count(rev ...
你的回复解决了我的问题,谢谢哈!

9
支支 发表于 2017-3-8 16:30:24

i也会打

黃河泉 发表于 2017-3-8 15:20
你原先的问题有谈到这个部分吗?
之前的表述可能不太清楚,不好意思哈,你也回答了我的一个问题,谢谢哈!

10
小小小小的我鸟 发表于 2021-8-3 23:45:35
黃河泉 发表于 2017-3-8 15:20
你原先的问题有谈到这个部分吗?
老师,那我想请教一下您,位次排序如何实现呢?

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-9 03:23