SAS: ordenar conjuntos de datos
Los conjuntos de datos en SAS se pueden clasificar según cualquiera de las variables presentes en ellos. Esto ayuda tanto en el análisis de datos como en la realización de otras opciones como la fusión, etc. La clasificación puede ocurrir en cualquier variable única, así como en múltiples variables. El procedimiento SAS utilizado para llevar a cabo la clasificación en el conjunto de datos SAS se denominaPROC SORT. El resultado después de la clasificación se almacena en un nuevo conjunto de datos y el conjunto de datos original permanece sin cambios.
Sintaxis
La sintaxis básica para la operación de clasificación en el conjunto de datos en SAS es:
PROC SORT DATA = original dataset OUT = Sorted dataset;
BY variable name;
A continuación se muestra la descripción de los parámetros utilizados:
variable name es el nombre de la columna en la que se realiza la clasificación.
Original dataset es el nombre del conjunto de datos que se ordenará.
Sorted dataset es el nombre del conjunto de datos después de ordenarlo.
Ejemplo
Consideremos el siguiente conjunto de datos SAS que contiene los detalles de los empleados de una organización. Podemos ordenar el conjunto de datos sobre el salario usando el código que se proporciona a continuación.
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 ;
Cuando se ejecuta el código anterior, obtenemos el siguiente resultado.
Clasificación inversa
La opción de clasificación predeterminada está en orden ascendente, lo que significa que las observaciones se organizan según el valor de menor a mayor de la variable ordenada. Pero también podemos querer que la clasificación suceda en orden ascendente.
Ejemplo
En el siguiente código, la ordenación inversa se logra mediante la instrucción 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 ;
Cuando se ejecuta el código anterior, obtenemos el siguiente resultado.
Ordenar múltiples variables
La clasificación se puede aplicar a múltiples variables usándolas con la instrucción BY. Las variables se ordenan con una prioridad de izquierda a derecha.
Ejemplo
En el siguiente código, el conjunto de datos se ordena primero por el nombre del departamento variable y luego por el nombre de la variable salario.
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 ;
Cuando se ejecuta el código anterior, obtenemos el siguiente resultado.