SASはなかなか情報がないので、知っていると結構役立つ情報をまとてみようかと
随時更新します
最終更新:20180425 システムオプションを追加
システムオプション
mprint
マクロ実行時に行われるSASステートメントをログに出力する。
mlogic
マクロ変数の評価式やマクロの実行開始、終了をログに出力する。
symbolgen
マクロ変数の置換結果を表示する。
fullstimer
ステップ実行ごとに、リソース使用状況を出力する。
mesglevel
出力されるログにINFO系のログを追加する。
用途としては、マージ時の意図しない同一変数の上書きなどを検知できる。
options msglevl = i;
mergenoby
マージ時に、byによってキーが指定されていない場合の動作を指定する。
デフォルトでは特に何もしないが、ERRORを出したり、WARNINGを出したりできる。
options mergenoby = error;
compress
データセットの圧縮方法を指定する。
デフォルトは、NO(圧縮しない)。
options compress = yes;
noxwait
Xコマンド実行後、開かれたコマンドプロンプトのウィンドウを自動的に閉じ、次のステートメントに移行する。
dataステップ
関数
index関数
指定した文字列が最初に出る位置を返す。
存在しない場合には、0を返す。
なお、2バイト文字を含む場合は、kindexを用いないと意図しない動作になることがある。
data _null_;
x = index("abcd efg hijk lmn", "jk");
put x=;
run;
callルーチン
call symputx
データステップ内で、指定の名前のマクロ変数に、変数値や値を格納できる。
その際に、余白は削除される。(trimされる)
類似のcallルーチンに「call symput」が存在するが、
こちらは入力文字列に余白がある場合、その余白も含めてマクロ変数に格納される。
data _null_;
x = "abc";
call symputx("MCR", x);
run;
%PUT &MCR.;
call system
プロシジャ
sortプロシジャ
noequalsオプション
sortプロシジャでは、デフォルトでは安定ソートを実行する。
(equals指定により明示的に安定ソートを指定できる)
noequalsを指定すると非安定ソートになるが、計算量の面で優位である。
proc sort
data = test
noequals;
by var1;
run;