Sas 简明教程
SAS - Sort Data Sets
SAS 中的数据集可以按其中的任何变量进行排序。这有助于数据分析和执行其他选项(如合并)等操作。可以使用单个变量和多个变量进行排序。SAS 过程在 SAS 数据集中执行排序,名为 PROC SORT 。排序后的结果存储在新数据集中,而原始数据集保持不变。
Syntax
数据集中排序操作的基本语法在 SAS 中为 −
PROC SORT DATA = original dataset OUT = Sorted dataset;
BY variable name;
以下是所用参数的描述 -
-
variable name 是进行排序的列名。
-
Original dataset 是要排序的数据集的名称。
-
Sorted dataset 是在排序后数据集的名称。
Example
我们来看一下以下的 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 ;
当以上代码执行时,我们会得到以下输出:
Reverse Sorting
默认的排序选项为升序,这意味着按排序变量的从低到高的值排列观测值。但是,我们也可能希望排序按降序进行。
Example
在以下代码中,通过使用 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 ;
当以上代码执行时,我们会得到以下输出:
Sorting Multiple Variables
可以通过在 BY 语句中使用多个变量来对其进行排序。变量按从左到右的优先级进行排序。
Example
在以下代码中,首先按部门名称变量对数据集进行排序,然后按工资变量对数据集进行排序。
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 ;
当以上代码执行时,我们会得到以下输出: