*! Version 1.0.1 NJC/RG 27 September 1999 (STB-52 dm72.1) * 1.0.0 NJC 4 August 1999 * field rank: highest is rank 1 and e.g. 1,1,1,4,5 if three tie for 1st program define _grankf version 6 syntax newvarname =/exp [if] [in] [, BY(varlist)] tempvar GRV quietly { gen double `GRV' = - (`exp') `if' `in' if "`by'" == "" { sort `GRV' gen `typlist' `varlist' = _n if `GRV' != . replace `varlist' = `varlist'[_n-1] /* */ if `GRV' != . & `GRV' == `GRV'[_n-1] label var `varlist' "Field rank of `exp'" exit } sort `by' `GRV' by `by': gen `typlist' `varlist' = _n if `GRV' != . by `by': replace `varlist' = `varlist'[_n-1] /* */ if `GRV' != . & `GRV' == `GRV'[_n-1] label var `varlist' "Field rank of `exp' by `by'" } end