- 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 - 布兰德-奥特曼分析
- SAS-卡方
- SAS - 费舍尔精确测试
- 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 ;
当执行上面的代码时,我们得到以下输出。