1. Home
  2. RANK procedure

RANK procedure

Produces ranks, from the values in a variate, allowing for ties (J.B. van Biezen & C.J.F. ter Braak).


OMIT = string token Whether units excluded by a restriction on the DATA variate should be omitted from the RANKS variate (restricted); default *, i.e. the units are not omitted, and their values are left unchanged


DATA = variates Variate containing values to be ranked
RANKS = variates Variate to save vector of ranks
TIESIZE = variates Variate to save the sizes of ties


RANK calculates ranks of the values in a variate, allowing for ties. The variate must be specified by the DATA parameter, and the ranks saved using the RANKS parameter. The input variates in the parameter DATA must each have at least one non-missing value. Missing values in the DATA variates give corresponding missing values in the RANKS variates. The TIESIZE parameter can save the number of times each value occurs (starting with the lowest value).

The OMIT option controls whether the RANKS variate omits units that are excluded by a restriction on the DATA variate. By default, the values in these units are left unchanged. However, if OMIT=restricted, the RANKS variate is compressed to omit the excluded units; this setting is used particularly by the nonparametric procedures.

Option: OMIT.



The procedure uses the SORT directive to discover the number of distinct values in the input variate, and then uses TABULATE to obtain the number of times each value occurs – i.e. the size of ties. The tie-corrected rank numbers are then calculated. From these, the vector of ranks is obtained by modifying the levels of the factor that resulted from the first SORT.

Action with RESTRICT

The variates in DATA can be restricted, and in different ways. RANK operates on the restricted set only. If OMIT=restricted, the length of RANKS will be the size of the restricted set of the DATA variate. If OMIT is unset, the RANKS variate is of the same length as the DATA variate.

See also

Procedure: SORT.

Function: RANKS, SORT .

Commands for: Calculations and manipulation.


CAPTION  'RANK example'; STYLE=meta
VARIATE  [VALUES= 10,20...50,50,50] y
RANK     y;Ranky
PRINT    y,Ranky; DECIMALS=1
 " Variate y1 is unrestricted.
   Variates y2 and y3 are restricted in different ways.
   The unrestricted values of these variates are ranked "
VARIATE  [VALUES=2,-2,-4,2,1,*,-2,-2,0,*] y1,y2,y3
RANK     [OMIT=restricted]  DATA=y1,y2,y3; RANKS=r1,r2,r3
PRINT    y1,r1 & y2,r2 & y3,r3
RANK     DATA=y1,y2,y3; RANKS=R1,R2,R3; TIESIZE=*,t2,t3
PRINT    y1,R1,R2,R3
&        t2,t3
Updated on June 18, 2019

Was this article helpful?