跳轉到內容

SAS/程式設計

來自華夏公益教科書
< SAS

SAS 程式設計模式

[編輯 | 編輯原始碼]

SAS 使用多種程式設計模式來操作資料。其中包括

  • 全域性語句,用於定義或更改程式環境
  • SAS 資料步,使用資料步語言在矩形資料庫表(資料集)中建立、輸入、修改和輸出資料。
    • SAS 資料步以 DATA 關鍵字開頭,通常以 RUN 語句結束。
  • 過程,預編譯的結構,旨在根據(通常)SAS 資料集和一個或多個控制引數的輸入來產生定義的結果
    • SAS 過程以 PROC 關鍵字開頭,後跟過程名稱,通常以 RUN 或 QUIT 語句結束。
  • SQL 語句,在 PROC SQL 中發出,提供了一種替代(更標準)的方法來建立和修改資料庫表
  • IML(互動式矩陣語言)語句,在 PROC IML 中發出,提供了一種操作矩陣資料的方法。
  • SAS 圖形語句,使用特殊詞彙表的語句來控制圖形輸出。
  • ODS 語句,使用另一種特殊詞彙表的語句來控制輸出到外部媒體
  • SAS 宏語言,在執行之前修改程式語句,並允許在每次執行時透過替換控制引數來使通用程式碼適應使用。
    • 宏程式碼通常由包含以 % 或 & 開頭的關鍵字的語句標識。

一個簡單的例子

[編輯 | 編輯原始碼]

以下宏計算頻率,繪製它們並將圖形儲存在檔案中。您只需一行即可執行所有這些任務,而無需每次都重複所有這些步驟。

%macro plot_dist(var=,title=,name=); 
proc freq data = lib.fic_dad_06_1 ; 
table &var /out = _freq_ ; 
run ; 
goptions reset=all;
filename output &name;
goptions device=png gsfname=output gsfmode=replace;
proc gplot data = _freq_ (where = (&var > 1 & &var < 70)) ;
title &title ;  
symbol v = circle c = black i = none; 
plot count * &var / grid href=10 20 50 ; 
run; 
quit ; 
%mend ; 

%plot_dist(var = EFFECTIF , title = "Effectif", name = "W:/…/hist_eff.png");
  • 宏的宣告以 **%macro** 開頭,以 **%mend** 結束。
  • 宏中的引數以 **&** 符號開頭。
華夏公益教科書