Attribuer des rangs aux observations avec la PROC RANK

La procédure PROC RANK recopie une table en y ajoutant une variable représentant le "rang" d'une observation par rapport à une variable donnée. La procédure ne génère pas de sortie dans l'output.

PROC RANK data= out= <options> ;
  VAR variable ;
  RANKS nom_pour_nouvelle_variable ;
  < BY variable ; >

Les options :

L'option data= spécifie toujours la table sur laquelle on travaille.
L'option out= spécifie le nom de la table résultat.

L'option descending permet d'ordonner en sens inverse.

L'option ties= permet de spécifier comment traiter le cas des ex-aequo. Les choix possibles sont high, low et mean.

L'option percent permet de calculer des pourcentages cumulés : chaque rang est remplacé par le rang fois 100 rapporté au nombre d'observations non manquantes. Ainsi, lorsqu'une observation a un rang égale à 8, c'est que 8% des observations ont une valeur inférieure à celle de ladite observation.

L'option groups=n (où n est un entier naturel) permet de calculer des quantiles. Les observations sont regroupées selon leur rang en n groupes.

Les instructions :

L'instruction VAR permet de préciser selon quelle variable se fait le calcul de rang.

L'instruction RANKS permet de stocker le rang dans une nouvelle variable.

Exemple :

Soit la table jeu suivante :

joueurpoints
A15
B10
C23
D14
E22
F9
G10
H7

Et le programme :

Proc rank data=jeu out=jeures descending ties=high ;
  Var points ;
  Ranks rang ;
Run;

Alors la table jeures contient :

joueurpointsrang
A153
B106
C231
D144
E222
F97
G106
H78

Exemple 2 :

Le programme suivant :

Proc rank data=jeu out=jeures groups=3 ;
  Var points ;
  Ranks rang ;
Run;

Édite la table jeures suivante :

joueurpointsrang
A152
B101
C232
D141
E222
F90
G101
H70

Avec cela on voit par exemple que C fait partie des 3 meilleurs tandis que F et H sont les deux moins bons.

Exemple 3 :

Le programme suivant :

Proc rank data=jeu out=jeures percent ;
  Var points ;
  Ranks rang ;
Run;

Édite la table jeures suivante :

joueurpointsrang
A1575
B1050
C23100
D1462,5
E2287,5
F925
G1050
H712,5

On lit par exemple que 1/2 des joueurs ont eu un score inférieur ou égal à celui de B, donc inférieur ou égal à 10.