Leo Yeh's Blog

SAS 證照考試 (4)

教學目標

初步了解 SAS 9 初階程式設計師認證考試範例考題的重點。

重點概念

SAS 官方網站則有提供範例題目 讓我們準備 SAS 9 初階程式設計師認證考試有個方向,本篇先了解第二題可能的學習重點。在 SAS 軟體中有能力合併二個不同的資料內容,不一定需要索引值,這是實用的功能,像是我們會從不同系統中匯整不同的資料內容,此時多個資料內容需要整合為單一客戶資訊檔,這時了解此題目就非常實用,其實 SAS 語法中 MERGE 應用類似於 SQL 語法中的 JOIN 應用。

資料合併方式

資料集 WORK.ONE 內容

1
2
3
4
5
6
 Id  Char1 
--- -----
182 M
190 N
250 O
720 P

資料集 WORK.TWO 內容

1
2
3
4
5
 Id  Char2 
--- -----
182 Q
623 R
720 S

執行下述 SAS 程式碼:

1
2
3
4
data WORK.BOTH;
merge WORK.ONE WORK.TWO;
by Id;
run;

輸出結果為:

1
2
3
Id  Char1  Char2 
--- ----- -----
182 M Q

在 MERGE 敘述中的變數讀取主要是保留在 SAS 在記憶體中建立資料集的邏輯空間 (Program Data Vector,PDV),一般來說 SAS 資料處理步驟主要有二個階段分別為編譯階段和執行階段,通常在編譯階段時就會將讀取 WORK.ONE 和 WORK.TWO 的資料值儲存至 PDV 中,接著在執行階段進行資料處理,主要會根據 BY 敘述以 ID 變數為索引值進行對應合併的應用。

此題延伸的重點應該在於合併資料根據不同的分析需求主要有三種方式,分別為:

一對一合併

1
2
3
data benefits.qtr1;
merge benefits.jan benefits.feb;
run;

對應合併

1
2
3
4
data inventry;
merge stock orders;
by partnum;
run;

資料集清單合併

1
2
3
4
5
6
7
8
9
10
data d008; job=3; emp=19; run; 
data d009; job=3; sal=50; run;
data d010; job=4; emp=97; run;
data d011; job=4; sal=15; run;
data comb;
merge d008-d011;
by job;
run;
proc print data=comb;
run;

總結 SAS 9 初階程式設計師需要有能力針對不同分析需求進行資料合併應用,因此範例題目第二題其實很實用。

相關資源

⬅️ Go back