全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2310 2
2012-03-13
数据有三个行业,每个行业有很多公司,变量是收入,如何保留每个行业的按收入排名的前50家公司?谢谢
二维码

扫码加我 拉你入群

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

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

全部回复
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,因为容易把另外两个行业的数据删掉

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

扫码加我 拉你入群

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

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

2012-3-13 19:45:27
非常感谢
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群