楼主: jinrongqi
2312 2

求助:数据有三个组,每组有很多公司,如何保留每组的前50家公司 [推广有奖]

  • 0关注
  • 3粉丝

已卖:2份资源

高中生

77%

还不是VIP/贵宾

-

威望
0
论坛币
9999 个
通用积分
1.0131
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
408 点
帖子
33
精华
0
在线时间
22 小时
注册时间
2010-9-20
最后登录
2012-11-3

楼主
jinrongqi 发表于 2012-3-13 19:05:55 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
数据有三个行业,每个行业有很多公司,变量是收入,如何保留每个行业的按收入排名的前50家公司?谢谢
二维码

扫码加我 拉你入群

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

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

关键词:数据 公司 行业 如何

沙发
liuhuaiju 发表于 2012-3-13 19:26:47
试下以下程序:
如果你的数据是Wide数据, 假设三个行业的变量是a1, a2, a3, 收入变量是income

1、将数据先按行业,再按收入大小排序, 命令如下:
sort a1 income
2、生成一个临时的辅助变量
by income: gen t=_n  //注意,前边的排序是从小到大的
3、保留前50家企业
keep if t>=??
??代表序号大于某值的企业是前50家

另外两个行业的做法是一样的

注:如果你的数据是Long数据,即有两个变量:行业a与收入income,a的取值是行业1=1,行业2=2,行业3=3,那么命令是
bysort a income: gen t=_n
drop if a==1 & t>=??
drop if a==2 & t>=??
drop if a==3 & t>=??
这里最好不用keep,因为容易把另外两个行业的数据删掉

不知道是否能解决你的问题,另外,其他达人有更简单的方法我也学学

藤椅
jinrongqi 发表于 2012-3-13 19:45:27
非常感谢

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

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