Leo Yeh's Blog

SAS 證照考試 (11)

教學目標

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

重點概念

SAS 官方網站則有提供範例題目讓我們準備 SAS 9 初階程式設計師認證考試有個方向,本篇先了解第九題可能的學習重點。在 SAS 軟體中有能力先篩選資料再進行處理,以利提高 SAS 程式讀取資料的效率,這時了解此題目就非常實用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DATA WORK.class;
INPUT Name $ Weight Height;
DATALINES;
學生1 65 170
學生2 52 166
學生3 70 167
學生4 58 172
學生5 80 169
;
RUN;

DATA WORK.output;
SET WORK.class;
BMI=Weight/((Height/100)**2);
IF BMI GE 20;
RUN;

PROC PRINT;
RUN;

輸出結果

Obs Name Weight Height BMI
1 學生1 65 170 22.4913
2 學生3 70 167 25.0995
3 學生5 80 169 28.0102

上述程式中主要會透過 IF 敘述篩選 BMI 大於等於 20 的學生,請注意因為 BMI 是在工作記憶體中會新建的變數,所以無法使用 WHERE 敘述進行篩選,因此請記得 WHERE 敘述僅能針對資料集中的變數進行篩選。此外 RUN 敘述若發現在資料步驟中沒有 OUTPUT 敘述則會自動加上 OUTPUT 敘述,所以 WHERE 敘述的位置不影響結果,但是 IF 敘述的位置會影響結果,因為若不符合條件則直接跳至 RUN 敘述,請參考下述 SAS 程式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DATA WORK.class;
INPUT Name $ Weight Height;
DATALINES;
學生1 65 170
學生2 52 166
學生3 70 167
學生4 58 172
學生5 80 169
;
RUN;

DATA WORK.output;
SET WORK.class;
BMI=Weight/((Height/100)**2);
WHERE Weight/((Height/100)**2) GE 20;
RUN;

PROC PRINT;
RUN;

輸出結果

Obs Name Weight Height BMI
1 學生1 65 170 22.4913
2 學生3 70 167 25.0995
3 學生5 80 169 28.0102

總結 SAS 9 初階程式設計師需要有能力先篩選資料再進行處理,以利提高 SAS 程式讀取資料的效率,因此範例題目第九題其實很實用。

相關資源

⬅️ Go back