
- 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 資料集進行子集化是指透過選擇較少的變數或較少的觀測值或兩者來提取資料集的一部分。變數子集化是使用 **KEEP** 和 **DROP** 語句完成的,而觀測值子集化是使用 **DELETE** 語句完成的。
子集化操作產生的結果資料儲存在一個新的資料集中,該資料集可用於進一步分析。子集化主要用於分析資料集的一部分,而無需使用那些可能與分析無關的變數或觀測值。
變數子集化
在這種方法中,我們僅從整個資料集中提取少數變數。
語法
SAS 中變數子集化的基本語法如下:
KEEP var1 var2 ... ; DROP var1 var2 ... ;
以下是所用引數的描述:
**var1 和 var2** 是需要保留或刪除的資料集中的變數名。
示例
考慮以下包含組織員工詳細資訊的 SAS 資料集。如果我們只對獲取資料集中的姓名和部門值感興趣,則可以使用以下程式碼。
DATA Employee; INPUT empid ename $ 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; DATA OnlyDept; SET Employee; KEEP ename DEPT; RUN; PROC PRINT DATA = OnlyDept; RUN;
執行上述程式碼後,我們將獲得以下輸出。
可以透過刪除不需要的變數來獲得相同的結果。以下程式碼說明了這一點。
DATA Employee; INPUT empid ename $ 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; DATA OnlyDept; SET Employee; DROP empid salary; RUN; PROC PRINT DATA = OnlyDept; RUN;
觀測值子集化
在這種方法中,我們僅從整個資料集中提取少數觀測值。
語法
我們使用 PROC FREQ 來跟蹤為新資料集選擇的觀測值。
觀測值子集化的語法如下:
IF Var Condition THEN DELETE ;
以下是所用引數的描述:
**Var** 是基於其值將使用指定條件刪除觀測值的變數的名稱。
示例
考慮以下包含組織員工詳細資訊的 SAS 資料集。如果我們只對獲取薪資超過 700 的員工資料感興趣,則可以使用以下程式碼。
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; DATA OnlyDept; SET Employee; IF salary < 700 THEN DELETE; RUN; PROC PRINT DATA = OnlyDept; RUN;
執行上述程式碼後,我們將獲得以下輸出。
廣告