并列值不占用排名的排序方法
参考:https://bbs.pinggu.org/thread-7797826-1-1.html
比如识别变量是stkcd year,我想对每年所有城市的y指标进行排序,如果单纯地使用:
bysort year: egen ranky = rank(y),field
就会导致同一个城市的不同stkcd会占用同一个有序数意义的排名,导致最后的排名数远超于城市数,也就是说,如果200个城市有3000个stkcd,若这么写代码,最后ranky的最大值是3000,而不是城市总数200。
怎么办呢?
cap program drop temp_rank
program define temp_rank
gen a = -y //从大到小排序
egen rank_y = group(a)
end
runby temp_rank, by(year)
sort city year rank_y
order city year OV65 rank_y

浙公网安备 33010602011771号