今回はMEANSについて解説します。
似た文法でSUMMARYプロシージャがあります。
今回のMEANSプロシージャも集計を行うのですが、こちらはデフォルトで「結果」を出力します。
/*means*/
data data1;
番号="AAAAAA"; コード="02"; 金額=1999;
output;
番号="AAAAAA"; コード="05"; 金額=2000;
output;
番号="BBBBBB"; コード="06"; 金額=2400;
output;
番号="BBBBBB"; コード="04"; 金額=1300;
output;
番号="BBBBBB"; コード="05"; 金額=4000;
output;
番号="CCCCCC"; コード="05"; 金額=5555;
output;
run;
proc sort data=data1 out=data2; by 番号; run;
proc means data=data2; var 金額; by 番号; output out=data3; run;




- by 番号を1グループとしてvar金額について集計する。
- summaryと同様、meansの出力はoutput out=
- meansはデフォルトで「結果」を出力する。
/*noprint*/
data data1;
番号="AAAAAA"; コード="02"; 金額=1999;
output;
番号="AAAAAA"; コード="05"; 金額=2000;
output;
番号="BBBBBB"; コード="06"; 金額=2400;
output;
番号="BBBBBB"; コード="04"; 金額=1300;
output;
番号="BBBBBB"; コード="05"; 金額=4000;
output;
番号="CCCCCC"; コード="05"; 金額=5555;
output;
run;
proc sort data=data1 out=data2; by 番号; run;
proc means data=data2 noprint; var 金額; by 番号; output out=data3; run;


- by 番号を1グループとしてvar金額について集計する。
- summaryと同様、meansの出力はoutput out=
- meansはデフォルトで「結果」を出力する。
- noprintにより、「結果」は出力されなくなる。
/* output out= 無し */
data data1;
番号="AAAAAA"; コード="02"; 金額=1999;
output;
番号="AAAAAA"; コード="05"; 金額=2000;
output;
番号="BBBBBB"; コード="06"; 金額=2400;
output;
番号="BBBBBB"; コード="04"; 金額=1300;
output;
番号="BBBBBB"; コード="05"; 金額=4000;
output;
番号="CCCCCC"; コード="05"; 金額=5555;
output;
run;
proc sort data=data1 out=data2; by 番号; run;
proc means data=data2; var 金額; by 番号; run;


- by 番号を1グループとしてvar金額について集計する。
- summaryと同様、meansの出力はoutput out=
- meansはデフォルトで「結果」を出力する。
- 「output out=」を無くすことにより、データセット(DATA3)の出力はされない。
/* output out= 無し noprint */
data data1;
番号="AAAAAA"; コード="02"; 金額=1999;
output;
番号="AAAAAA"; コード="05"; 金額=2000;
output;
番号="BBBBBB"; コード="06"; 金額=2400;
output;
番号="BBBBBB"; コード="04"; 金額=1300;
output;
番号="BBBBBB"; コード="05"; 金額=4000;
output;
番号="CCCCCC"; コード="05"; 金額=5555;
output;
run;
proc sort data=data1 out=data2; by 番号; run;
proc means data=data2 noprint; var 金額; by 番号; run;



- by 番号を1グループとしてvar金額について集計する。
- summaryと同様、meansの出力はoutput out=
- meansはデフォルトで「結果」を出力する。
- 「output out=」を無くすことにより、データセット(DATA3)の出力はされない。
- noprintにより、「結果」は出力されなくなる。
- 「結果」も「データセット出力」もできないと、エラーとなる。
/* class */
data data1;
番号="AAAAAA"; コード="02"; 金額=1999;
output;
番号="AAAAAA"; コード="05"; 金額=2000;
output;
番号="BBBBBB"; コード="06"; 金額=2400;
output;
番号="BBBBBB"; コード="04"; 金額=1300;
output;
番号="BBBBBB"; コード="05"; 金額=4000;
output;
番号="CCCCCC"; コード="05"; 金額=5555;
output;
run;
proc sort data=data1 out=data2; by 番号; run;
proc means data=data2; var 金額; class 番号; output out=data3; run;


- class 番号を1グループとしてvar金額について集計する。
- summaryと同様、meansの出力はoutput out=
- meansはデフォルトで「結果」を出力する。
- classを使うとAAAAAA, BBBBBB, CCCCCC以外に全体での集計もされる。
/* class sort無し */
data data1;
番号="AAAAAA"; コード="02"; 金額=1999;
output;
番号="BBBBBB"; コード="06"; 金額=2400;
output;
番号="AAAAAA"; コード="05"; 金額=2000;
output;
番号="BBBBBB"; コード="04"; 金額=1300;
output;
番号="CCCCCC"; コード="05"; 金額=5555;
output;
番号="BBBBBB"; コード="05"; 金額=4000;
output;
run;
proc means data=data1; var 金額; class 番号; output out=data3; run;



- class 番号を1グループとしてvar 金額について集計する。
- summaryと同様、meansの出力はoutput out=
- meansはデフォルトで「結果」を出力する。
- classを使うとAAAAAA, BBBBBB, CCCCCC以外に全体での集計もされる。
- classを使うと番号が並んでなくても、実行できる。
/* class N*/
data data1;
番号="AAAAAA"; コード="02"; 金額=1999;
output;
番号="AAAAAA"; コード="05"; 金額=2000;
output;
番号="BBBBBB"; コード="06"; 金額=2400;
output;
番号="BBBBBB"; コード="04"; 金額=1300;
output;
番号="BBBBBB"; コード="05"; 金額=4000;
output;
番号="CCCCCC"; コード="05"; 金額=5555;
output;
run;
proc sort data=data1 out=data2; by 番号; run;
proc means data=data2 N; var 金額; class 番号; output out=data3; run;




- class 番号を1グループとしてvar 金額について集計する。
- summaryと同様、meansの出力はoutput out=
- meansはデフォルトで「結果」を出力する。
- classを使うとAAAAAA, BBBBBB, CCCCCC以外に全体での集計もされる。
- classを使うと番号が並んでなくても、実行できる。
- Nを指定すると、「結果」はサンプル数のみ表示する。
/* class MEDIAN*/
data data1;
番号="AAAAAA"; コード="02"; 金額=1999;
output;
番号="AAAAAA"; コード="05"; 金額=2000;
output;
番号="BBBBBB"; コード="06"; 金額=2400;
output;
番号="BBBBBB"; コード="04"; 金額=1300;
output;
番号="BBBBBB"; コード="05"; 金額=4000;
output;
番号="CCCCCC"; コード="05"; 金額=5555;
output;
run;
proc sort data=data1 out=data2; by 番号; run;
proc means data=data2 MEDIAN; var 金額; class 番号; output out=data3; run;



- class 番号を1グループとしてvar 金額について集計する。
- summaryと同様、meansの出力はoutput out=
- meansはデフォルトで「結果」を出力する。
- classを使うとAAAAAA, BBBBBB, CCCCCC以外に全体での集計もされる。
- classを使うと番号が並んでなくても、実行できる。
- MEDIANを指定すると、「結果」は中央値のみ表示する。