Leo Yeh's Blog

SAS 快速入門 (8)

教學目標

撰寫 SAS 程式快速入門之了解透過 SAS 程序建立清單報表相關準備資料、執行敘述與選項設定,適合對象為沒有學過 SAS 程式,但想學 SAS 程式的使用者。

重點概念

為了透過 SAS 程序建立清單報表,所以我們的資料必須是 SAS 資料集格式,若我們的資料沒有儲存為 SAS 資料集格式,則我們會需要透過輸入資料、讀取原始資料和存取外部檔案。

準備資料

一般來說,我們在讀取原始資料之前,我們必須先參考儲存資料集的 SAS 資料館,接著撰寫 DATA STEP 程式讀取原始資料檔案和建立 SAS 資料集,其中若我們需要從外部檔案讀取原始資料則必須設定下述四項資訊,分別為:

CUSTOMER.TXT 檔案內容

1
2
3
4
5
6
Name,Gender,Age,City
Alice,F,16,Taipei
Bob,M,27,Keelung
Candy,F,18,Taichung
David,M,24,Kaohsiung
Emma,F,26,Tainan

上述 CUSTOMER.TXT 為外部檔案其路徑和名稱為 C:\DATA\CUSTOMER.TXT,將會在 SAS 中建立 customerdata 為識別外部檔案的參考,同時在 SAS 中建立資料集名稱為 MYLIB.cusomter,最後定義資料內容的描述主要有四個欄位,分別為 Name、Gender、Age 和 City 欄位,其中只有 Age 欄位是數值格式,其它 Name、Gender 和 City 欄位皆為文字格式,此外我們最好了解欄位的定義,像是 Name 為客戶姓名、Gender 為客戶性別、Age 為客戶年齡和 City 為客戶居住城市。

執行敘述

再來當我們使用 DATA STEP 讀取原始資料之後,我們會再使用 PROC PRINT 步驟產生清單報表顯示 SAS 資料集中的資料內容。所以我們須再深入了解基礎的 SAS 敘述,請參考下表。

SAS 敘述 執行功能 程式範例
LIBNAME 參考資料邏輯庫 LIBNAME MYLIB ‘C:\DATA\LIBRARY’;
FILENAME 參考外部檔案 FILENAME customerdata ‘C:\DATA\CUSTOMER.TXT’;
DATA 資料集名稱 DATA MYLIB.cusomter;
INFILE 識別外部檔案 INFILE customerdata FIRSTOBS=2 DLM=’,’ DSD MISSOVER;
INPUT 描述檔案 INPUT Name $ Gender $ Age City $;
RUN 執行資料步驟 RUN;
PROC PRINT 列出資料 PROC PRINT DATA=MYLIB.customer;
RUN 執行程式步驟 RUN;

選項設定

最後若我們透過 SAS 產生清單報表,則會設定每行長度、每頁大小、顯示頁面號碼和顯示日期時間,針對上述四項設定我們可以透過選項進行設定,請參考下表。

SAS 選項 功能
PAGENO=n 輸出頁面開始的號碼,預設值為 1。
PAGESIZE=n 每頁輸出最大行數,n 的範圍為 15 至 32767。
LINESIZE=n 每行輸出最大長度,n 的範圍為 64 至 256。
NUMBER 顯示頁面號碼,預設選項。
NONUMBER 不顯示頁面號碼。
DATE 顯示日期時間,預設選項。
NODATE 不顯示日期時間。
YEARCUTOFF=yyyy 設定起始年份,預設值為 1920。
CENTER 輸出置中對齊,預設選項。
NOCENTER 輸出靠左對齊。
ORIENTATION=PORTRAIT 輸出方向為重直,預設選項。
ORIENTATION=LANDSCAPE 輸出方向為水平。
TOPMARGIN=n 輸出上邊綠大小,預設為 0.00 英寸。
BOTTOMMARGIN=n 輸出下邊綠大小,預設為 0.00 英寸。
LEFTMARGIN=n 輸出左邊綠大小,預設為 0.00 英寸。
RIGHTMARGIN=n 輸出右邊綠大小,預設為 0.00 英寸。

總結若我們要透過 SAS 程序建立清單報表最好花時間好好了解相關準備資料、執行敘述與選項設定,將有助於改善 SAS 程式的撰寫風格。

相關資源

⬅️ Go back