试下以下程序:
如果你的数据是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,因为容易把另外两个行业的数据删掉
不知道是否能解决你的问题,另外,其他达人有更简单的方法我也学学