一、sas 宏變量
1) 宏變量屬於SAS宏語言,與普通變量的區別是可以獨立於DATA步
2) 可以再SAS程序中除數據行之外的任何地方定義並使用宏變量
3) %let語句定義宏變量並分配一個值給宏變量(如:%let dsn=3)
4) 當引用一個宏變量的值,放&號在宏變量前
5) 使用%str函數圍住宏變量的值,使得在這個值內部的分號作為這個文本的部分,而不是%let語句的結束
6) 使用%PUT語句在LOG窗口顯示宏變量的值
7) SAS/BASE中的自動宏變量,如sysver,systime(給出sas版本或會話開始執行的時間);
二、宏
1) 用%macro語句開始一個宏,同時給出這個宏的名字。如:%macro dsn;
2) 用%mend語句結束一個宏,其后給出宏名字。如%mend dsn;
3) 放一個百分數符號(%)在宏名字前面以調用一個宏,如%dsn
三、宏參數
- 被定義在一個%macro語句的宏名字后括號內的宏變量稱為宏參數,可以直接給出宏參數的值也可以在調用這個宏時給出這些參數的值
- 對參數分配的值只在這個宏執行時有效,而宏變量從用戶創建直到SAS會話結束前都存在
使用宏繪制散點圖:

為age>50的人繪制age*weight散點圖:

四、Sas錯誤的處理
- 句法錯誤:當程序語句與SAS語言准則不一致時發現的錯誤,如關鍵詞拼錯,少掉分號等。
- 語義錯誤:元素在當前程序語句中的用法是無效時產生的,如DO OVER A
- 數據錯:當有些數據值不適合用戶規定的格式時出現
- 運行錯:當SAS執行程序時在數值上出現的錯誤,如用0作為除數,infile引用的文件地址不存在等
- 常見錯誤
- 遺漏run語句,在活動窗口的標題欄里顯示proc(或data)step runing
- 遺漏分號,在log窗口中顯示錯誤,將下一個有效的語句解釋為無效的語句
- 引號不配對,log信息指明字符串太長或語句被混淆
- 無效選項,log指明選項無效或不認識
- 出現錯誤時可以同時按下ctrl+break中斷程序
- 注意有漢字輸入的程序中可能帶來輸入法兼容性錯誤,解決方法是重新輸入並檢查錯誤
