MEANSプロシジャのOUT=で作成されるデータセットの要約統計量が入る変数名について

例えば以下のような適当なデータがあったとします。

data Q_1;
call streaminit(1011);
 do i=1 to 100;
  A=ceil(rand('uniform')*10);
  B=ceil(rand('uniform')*2);
  C=ceil(rand('uniform')*5);
  D=ceil(rand('normal')*10);
 output;
 end;
drop i;
run;



例えばAでグループ化して平均B,C,Dそれぞれの変数について平均をとりたければ

proc means data=Q_1 noprint nway;
 class A;
 output out=OUT_1 mean= X Y Z;
run;

でいいわけです。



この時、作成されたデータセットOUT_1について
Bの平均は変数X Cの変数はY DはZに格納されます。
変数の位置関係が重要になるので注意してください。


さてここで

proc means data=Q_1 noprint nway;
 class A;
 output out=OUT_2 mean=;
run;

のようにmean=で何も指定しないとどうなりますか?
エラーにならず


Bの平均はB Cの平均はC Dの平均はDです。
出したい要約統計量が一つであれば、こっちの書き方の方がわかりやすいかもしれませんね。

ちなみにもし、出したいのがBとDの平均とCの合計が欲しいといった
わがままも下のように( )で指定して実現可能です。

proc means data=Q_1 noprint nway;
 class A;
 output out=OUT_3 mean(B D)=BMEAN DMEAN SUM(C)=CSUM;
run;












創意工夫は無限大、meansプロシジャは優秀ですね


0 件のコメント:

コメントを投稿