Leo Yeh's Blog

SAS 快速入門 (5)

教學目標

撰寫 SAS 程式快速入門之如何將資料放入 SAS 資料集中,適合對象為沒有學過 SAS 程式,但想學 SAS 程式的使用者。

重點概念

上一篇我們主要介紹如何在 SAS 中讀取其它非標準格式的原始資料,然而這篇則主要介紹如何將我們的資料放入 SAS 資料集中。

一行有多個觀測值的原始資料

通常資料皆會有換行符號區分每一筆資料,除非特殊考量才不會使用換行符號區分每一筆資料,也就是當一行出現多個觀測值時,我們可以在 INPUT 敘述最後加上一個停止符號 @@,請參考下述 SAS 程式。

SAS 範例程式

1
2
3
4
5
6
7
8
9
DATA customer;
INPUT Name $ Gender $ Age CreateDate YYMMDD10. @@;
DATALINES;
Alice F 16 2017-01-01 Bob M 27 2017-01-01 Candy
F 18 2017-01-01 David M 24 2017-01-01 Emma F 26 2017-01-01
;
RUN;
PROC PRINT;
RUN;

輸出結果

Obs Name Gender Age CreateDate
1 Alice F 16 20820
2 Bob M 27 20820
3 Candy F 18 20820
4 David M 24 20820
5 Emma F 26 20820

讀取原始資料中的部分觀測值

當我們僅要讀取原始資料中的部分觀測值時將會使用 @ 停留符號,與 @@ 停留符號的差別在於 @ 能夠讓 SAS 停留到下一個 INPUT 語句,也不換行,而 @@ 則是能夠讓 SAS 停留至下一個 DATA STEP ,也不換行,像是若我們想要只取出女性客戶的資料時,就能夠使用 @ 停留符號,先進行 IF-THEN 判斷 Gender 變數為 ‘F’ 也就是女性客戶時,就輸入資料,否則刪除資料,請參考下述範例程式。

SAS 範例程式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
DATA customer;
INPUT Name $ Gender $ @;
IF Gender = 'F' TEHN INPUT Age CreateDate YYMMDD10.;
ELSE DELETE;
DATALINES;
Alice F 16 2017-01-01
Bob M 27 2017-01-01
Candy F 18 2017-01-01
David M 24 2017-01-01
Emma F 26 2017-01-01
;
RUN;
PROC PRINT;
RUN;

輸出結果

Obs Name Gender Age CreateDate
1 Alice F 16 20820
2 Candy F 18 20820
3 Emma F 26 20820

總結當使用 INPUT 敘述時若了解 @ 與 @@ 符號,則就能夠針對一行有多個觀測值的原始資料進行讀取,以及僅讀取原始資料中的部分觀測值,有效將我們的資料放入 SAS 資料集中。

相關資源

⬅️ Go back