Leo Yeh's Blog

SAS 證照考試 (5)

教學目標

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

重點概念

SAS 官方網站則有提供範例題目 讓我們準備 SAS 9 初階程式設計師認證考試有個方向,本篇先了解第三題可能的學習重點。在 SAS 軟體中有能力資料文字檔,並且直接指定變數名稱和讀取值的特定位置,這時了解此題目就非常實用。

讀取資料檔案方式

資料檔案 COLORS.TXT 內容

1
2
3
4
5
----+----1----+----2----+---- 
RED ORANGE YELLOW GREEN
BLUE INDIGO PURPLE VIOLET
CYAN WHITE FUCSIA BLACK
GRAY BROWN PINK MAGENTA

執行下述 SAS 程式碼:

1
2
3
4
5
data WORK.COLORS;   
infile 'COLORS.TXT';
input @1 Var1 $ @8 Var2 $ @;
input @1 Var3 $ @8 Var4 $ @;
run;

輸出結果為:

1
2
3
4
5
6
 Var1     Var2     Var3    Var4 
------ ------ ------ ------
RED ORANGE RED ORANGE
BLUE INDIGO BLUE INDIGO
CYAN WHITE CYAN WHITE
GRAY BROWN GRAY BROWN

使用 INPUT 敘述主要會從外部檔案或 In-stream 資料讀取原始資料,若我們資料儲存在外部檔案則會使用 INFILE 敘述,反之若資料是 In-stream 資料則會使用 DATALINES 敘述,當我們使用 INFILE 敘述時必須在 INPUT 敘述之前,接著 DATA 步驟會從原始資料中讀取多個 INPUT 敘述轉換變數儲存。

此題延伸的重點應該在於 INFILE 敘述搭配 INPUT 敘述進行不同檔案格式的資料讀取,除了指定位置之外,還能夠讀取分隔符號的資料,一般以逗點為主,但也可以是特殊分隔符號。

逗點分隔符號

1
2
3
4
5
6
7
8
data num;
infile datalines dsd;
input x y z;
datalines;
,2,3
4,5,6
7,8,9
;

特殊分隔符號

以下程式會將字元 a、b、 aa、ab、 ba 或 bb 當成分隔符號。

1
2
3
4
5
6
7
8
9
10
data nums;
infile datalines dsd delimiter='ab';
input X Y Z;
datalines;
1aa2ab3
4b5bab6
7a8b9
;

proc print; run;

以下程式會將字元 PRD 不分大小寫當成分隔符號。

1
2
3
4
5
6
7
8
9
data test;
infile datalines dsd dlmstr='PRD' dlmsopt='i';
input X Y Z;
datalines;
1PRD2PRd3
4PrD5Prd6
7pRd8pRD9
;
proc print data=test; run;

總結 SAS 9 初階程式設計師需要有能力針對不同資料格式的檔案進行對應至適當的變數中,因此範例題目第三題其實很實用。

相關資源

⬅️ Go back