- SAS 教程
- SAS - 首页
- SAS - 概述
- SAS - 环境
- SAS - 用户界面
- SAS - 程序结构
- SAS - 基本语法
- SAS - 数据集
- SAS - 变量
- SAS - 字符串
- SAS - 数组
- SAS - 数字格式
- SAS - 运算符
- SAS - 循环
- SAS - 决策
- SAS - 函数
- SAS - 输入方法
- SAS - 宏
- SAS - 日期和时间
- SAS 数据集操作
- SAS - 读取原始数据
- SAS - 写入数据集
- SAS - 合并数据集
- SAS - 合并数据集
- SAS - 数据集子集
- SAS - 数据集排序
- SAS - 格式化数据集
- SAS - SQL
- SAS - 输出交付系统
- SAS - 模拟
- SAS 基本统计过程
- SAS - 算术平均值
- SAS - 标准差
- SAS - 频数分布
- SAS - 交叉表
- SAS - t 检验
- SAS - 相关分析
- SAS - 线性回归
- SAS - Bland-Altman 分析
- SAS - 卡方检验
- SAS - Fisher 精确检验
- SAS - 重复测量分析
- SAS - 单因素方差分析
- SAS - 假设检验
- SAS 有用资源
- SAS - 快速指南
- SAS - 有用资源
- SAS - 问答
- SAS - 讨论
SAS - 数据集排序
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 ;
执行上述代码后,我们将获得以下输出。
广告