
- 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 ;
執行上述程式碼後,我們將獲得以下輸出。
廣告