教學目標

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

重點概念

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

準備資料

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

  • 外部檔案的路徑和名稱。
  • 識別外部檔案的參考。
  • 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:DATACUSTOMER.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:DATALIBRARY’;
FILENAME 參考外部檔案 FILENAME customerdata ‘C:DATACUSTOMER.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 程式的撰寫風格。

相關資源