Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: RE: year-wise rank function for multi-level data

From   Nick Cox <>
To   "''" <>
Subject   st: RE: year-wise rank function for multi-level data
Date   Wed, 18 May 2011 18:28:46 +0100

As I understand it you want something like this: 

egen tag = tag(bg_code time) 
egen rank = rank(bg_sales) if tag, by(time) field 
bysort bg_code time (rank) : replace rank = rank[1] 


Apalak Khatua

I am using unbalanced panel data. There are multiple firms (firm_code)
within a business group (bg_code). I am considering sales for each
firm (i.e. firm_sales) as a proxy for firm size. So business group
size/sales (bg_sales) would be the summation of all firm-level sales
of that particular business group for that particular year (time).
Which I am calculating by:

egen bg_sales = total(firm_sales), by(bg_code time)

Now I would like to get the year-wise rank variable of all business
groups (bg_code) in terms of size (i.e. bg_sales) . Here the unique id
can be defined by bg_code and year (not firm_code). The rank variable
for the biggest business group (in terms of bg_sales or size of the
business group) for that particular year should be 1 and so on. How to
write the code to get this rank variable against each bg_code for each

*   For searches and help try:

© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index