SAS - Ordina set di dati

I set di dati in SAS possono essere ordinati su una qualsiasi delle variabili presenti in essi. Questo aiuta sia nell'analisi dei dati che nell'esecuzione di altre opzioni come l'unione, ecc. L'ordinamento può avvenire su ogni singola variabile così come su più variabili. Viene denominata la procedura SAS utilizzata per eseguire l'ordinamento nel data set SASPROC SORT. Il risultato dopo l'ordinamento viene memorizzato in un nuovo set di dati e il set di dati originale rimane invariato.

Sintassi

La sintassi di base per l'operazione di ordinamento nel set di dati in SAS è:

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

Di seguito la descrizione dei parametri utilizzati:

  • variable name è il nome della colonna su cui avviene l'ordinamento.

  • Original dataset è il nome del set di dati da ordinare.

  • Sorted dataset è il nome del set di dati dopo che è stato ordinato.

Esempio

Consideriamo il seguente set di dati SAS contenente i dettagli dei dipendenti di un'organizzazione. Possiamo ordinare i dati impostati sullo stipendio utilizzando il codice riportato di seguito.

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 ;

Quando il codice precedente viene eseguito, otteniamo il seguente output.

Ordinamento inverso

L'opzione di ordinamento predefinita è in ordine crescente, il che significa che le osservazioni sono disposte in base al valore più basso o più alto della variabile ordinata. Ma potremmo anche volere che l'ordinamento avvenga in ordine crescente.

Esempio

Nel codice seguente, l'ordinamento inverso si ottiene utilizzando l'istruzione 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 ;

Quando il codice precedente viene eseguito, otteniamo il seguente output.

Ordinamento di più variabili

L'ordinamento può essere applicato a più variabili utilizzandole con l'istruzione BY. Le variabili vengono ordinate con una priorità da sinistra a destra.

Esempio

Nel codice seguente il set di dati viene ordinato prima sul nome del reparto variabile e poi sul nome della variabile stipendio.

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 ;

Quando il codice precedente viene eseguito, otteniamo il seguente output.