LoginSignup
5
5

More than 5 years have passed since last update.

SASのTips集

Last updated at Posted at 2018-04-20

SASはなかなか情報がないので、知っていると結構役立つ情報をまとてみようかと
随時更新します

最終更新:20180425 システムオプションを追加

システムオプション

mprint

マクロ実行時に行われるSASステートメントをログに出力する。

mlogic

マクロ変数の評価式やマクロの実行開始、終了をログに出力する。

symbolgen

マクロ変数の置換結果を表示する。

fullstimer

ステップ実行ごとに、リソース使用状況を出力する。

mesglevel

出力されるログにINFO系のログを追加する。

用途としては、マージ時の意図しない同一変数の上書きなどを検知できる。

sas: msglevelc例
options msglevl = i;

mergenoby

マージ時に、byによってキーが指定されていない場合の動作を指定する。
デフォルトでは特に何もしないが、ERRORを出したり、WARNINGを出したりできる。

sas: mergenoby例
options mergenoby = error;

compress

データセットの圧縮方法を指定する。
デフォルトは、NO(圧縮しない)。

sas: compress例
options compress = yes;

noxwait

Xコマンド実行後、開かれたコマンドプロンプトのウィンドウを自動的に閉じ、次のステートメントに移行する。

dataステップ

関数

index関数

指定した文字列が最初に出る位置を返す。
存在しない場合には、0を返す。
なお、2バイト文字を含む場合は、kindexを用いないと意図しない動作になることがある。

index例
data _null_;
   x = index("abcd efg hijk lmn", "jk");
   put x=;
run;

callルーチン

call symputx

データステップ内で、指定の名前のマクロ変数に、変数値や値を格納できる。
その際に、余白は削除される。(trimされる)
類似のcallルーチンに「call symput」が存在するが、
こちらは入力文字列に余白がある場合、その余白も含めてマクロ変数に格納される。

symputx例
data _null_;
   x = "abc";
   call symputx("MCR", x);
run;

%PUT &MCR.;

call system

プロシジャ

sortプロシジャ

noequalsオプション

sortプロシジャでは、デフォルトでは安定ソートを実行する。
(equals指定により明示的に安定ソートを指定できる)
noequalsを指定すると非安定ソートになるが、計算量の面で優位である。

noequalsオプション例
proc sort
  data = test
  noequals;
  by var1;
run;
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5