2015年7月30日木曜日

集計結果をデータセット化する場合、MEANSよりSUMAMYプロシジャの方が効率的



サンプル作成

data DT1;
input A B @@;
cards;
3 10  2 20  1 30
;



SUMMARYプロシジャでAの平均値とBの平均値を求めてデータセットに出力したいとします。
これはOUTPUTステートメントに以下の書き方をするだけでokです。

proc summary data=DT1;
   output out=OUT1  mean(A)=A_MEAN  mean(B)=B_MEAN;
run;



構文

OUTPUT OUT=出力データセット名  統計量( 対象変数 ) = 出力変数名 ・・・;



MEANSプロシジャでも同じ書き方が出来るけど、、

proc means data=DT1 noprint;
   output out=OUT1  mean(A)=A_MEAN  mean(B)=B_MEAN;
run;


MEANS vs SUMMARYプロシジャ」で解説した通り、

MEANSプロシジャでは「VARステートメントを省略すると、CLASSステートメント等のその他のステートメントに指定していない全ての数値変数」が裏で集計されているようで、

SUMMARYプロシジャの方が、余計な集計が行われないし、短い文で書けるので効率的です。


0 件のコメント:

コメントを投稿