SAS - Trier les ensembles de données

Les ensembles de données dans SAS peuvent être triés sur n'importe laquelle des variables présentes. Cela aide à la fois dans l'analyse des données et dans l'exécution d'autres options comme la fusion, etc. Le tri peut se produire sur n'importe quelle variable unique ainsi que sur plusieurs variables. La procédure SAS utilisée pour effectuer le tri dans l'ensemble de données SAS est nomméePROC SORT. Le résultat après le tri est stocké dans un nouvel ensemble de données et l'ensemble de données d'origine reste inchangé.

Syntaxe

La syntaxe de base pour l'opération de tri dans l'ensemble de données dans SAS est -

PROC SORT DATA = original dataset OUT = Sorted dataset;
   BY variable name;

Voici la description des paramètres utilisés -

  • variable name est le nom de la colonne sur laquelle le tri a lieu.

  • Original dataset est le nom de l'ensemble de données à trier.

  • Sorted dataset est le nom de l'ensemble de données après son tri.

Exemple

Considérons l'ensemble de données SAS suivant contenant les détails des employés d'une organisation. Nous pouvons trier l'ensemble de données sur le salaire en utilisant le code ci-dessous.

DATA Employee; 
   INPUT empid name $ salary DEPT $ ; 
DATALINES; 
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;

PROC SORT DATA = Employee OUT = Sorted_sal ;
   BY salary;
RUN ;
 
PROC PRINT DATA = Sorted_sal;
RUN ;

Lorsque le code ci-dessus est exécuté, nous obtenons la sortie suivante.

Tri inversé

L'option de tri par défaut est dans l'ordre croissant, ce qui signifie que les observations sont organisées selon la valeur inférieure à supérieure de la variable triée. Mais nous pouvons également souhaiter que le tri se fasse par ordre croissant.

Exemple

Dans le code ci-dessous, le tri inversé est obtenu à l'aide de l'instruction DESCENDING.

DATA Employee; 
   INPUT empid name $ salary DEPT $ ; 
DATALINES; 
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;

PROC SORT DATA = Employee OUT = Sorted_sal_reverse ;
   BY DESCENDING salary;
RUN ;
 
PROC PRINT DATA = Sorted_sal_reverse;
RUN ;

Lorsque le code ci-dessus est exécuté, nous obtenons la sortie suivante.

Tri de plusieurs variables

Le tri peut être appliqué à plusieurs variables en les utilisant avec l'instruction BY. Les variables sont triées avec une priorité de gauche à droite.

Exemple

Dans le code ci-dessous, l'ensemble de données est trié en premier sur le nom du service variable et ensuite sur le nom de la variable salaire.

DATA Employee; 
   INPUT empid name $ salary DEPT $ ; 
DATALINES; 
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;

PROC SORT DATA = Employee OUT = Sorted_dept_sal ;
   BY salary DEPT;
RUN ;
 
PROC PRINT DATA = Sorted_dept_sal;
RUN ;

Lorsque le code ci-dessus est exécuté, nous obtenons la sortie suivante.