Sas 简明教程

SAS - Sort Data Sets

SAS 中的数据集可以按其中的任何变量进行排序。这有助于数据分析和执行其他选项(如合并)等操作。可以使用单个变量和多个变量进行排序。SAS 过程在 SAS 数据集中执行排序,名为 PROC SORT 。排序后的结果存储在新数据集中,而原始数据集保持不变。

Syntax

数据集中排序操作的基本语法在 SAS 中为 −

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

以下是所用参数的描述 -

  1. variable name 是进行排序的列名。

  2. Original dataset 是要排序的数据集的名称。

  3. 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 ;

当以上代码执行时,我们会得到以下输出:

sort1

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 ;

当以上代码执行时,我们会得到以下输出:

sort2

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 ;

当以上代码执行时,我们会得到以下输出:

sort3