2016年4月19日火曜日

プロシジャでもATTRIBやLABELなどのステートメントが使える。



以下をご覧ください。
data OUT1;
   label AGE="ねんれい";
   set SASHELP.CLASS;
run;

proc sort data=OUT1;
   by AGE;
run;

データステップでLABELを変更してから、SORTプロシジャで並び替えを行っています。
昔自分が書いたプログラムを見てたら、こんな感じで2ステップ使って書いてました。


これらの処理は1ステップで書けます。
proc sort data=sashelp.class out=OUT1;
   by AGE;
   label AGE="ねんれい";
run;

プロシジャにもATTRIB, LABEL, FORMATステートメントが使えます。
(プロシジャによっては使えない可能性もあります)


ただし一部挙動が異なる。

・ プロシジャ内でLENGTHステートメントは使えません。
書いても 「NOTE: LENGTH属性は変更できないため、無視されます。」 ってログに出て無視されます。

・ データステップの一番先頭にATTRIB等の変数属性を定義するステートメントを記述すると、記述した順に変数が並びますが、プロシジャ内で記述しても変数の順番は変わりません。



0 件のコメント:

コメントを投稿