Наборы данных в SAS могут быть отсортированы по любой из переменных, присутствующих в них. Это помогает как в анализе данных, так и в выполнении других опций, таких как объединение и т. Д. Сортировка может происходить как по любой отдельной переменной, так и по нескольким переменным. Процедура SAS, используемая для выполнения сортировки в наборе данных SAS, называется PROC SORT . Результат после сортировки сохраняется в новом наборе данных, а исходный набор данных остается неизменным.
Синтаксис
Основной синтаксис для операции сортировки в наборе данных в SAS —
PROC SORT DATA = original dataset OUT = Sorted dataset; BY variable name;
Ниже приведено описание используемых параметров:
-
имя переменной — это имя столбца, по которому происходит сортировка.
-
Исходный набор данных — это имя набора данных для сортировки.
-
Сортированный набор данных — это имя набора данных после его сортировки.
имя переменной — это имя столбца, по которому происходит сортировка.
Исходный набор данных — это имя набора данных для сортировки.
Сортированный набор данных — это имя набора данных после его сортировки.
пример
Давайте рассмотрим следующий набор данных SAS, содержащий сведения о сотрудниках организации. Мы можем отсортировать данные о зарплате, используя код, приведенный ниже.
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 ;
Когда приведенный выше код выполняется, мы получаем следующий вывод.
Обратная сортировка
Параметр сортировки по умолчанию расположен в порядке возрастания, что означает, что наблюдения располагаются в соответствии с более низким значением сортируемой переменной. Но мы также можем захотеть, чтобы сортировка происходила в порядке возрастания.
пример
В приведенном ниже коде обратная сортировка достигается с помощью оператора 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 ;
Когда приведенный выше код выполняется, мы получаем следующий вывод.
Сортировка нескольких переменных
Сортировка может быть применена к нескольким переменным, используя их с оператором BY. Переменные сортируются с приоритетом слева направо.
пример
В приведенном ниже коде набор данных сортируется сначала по имени отдела переменных, а затем по окладу имени переменной.
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 ;
Когда приведенный выше код выполняется, мы получаем следующий вывод.