MEANS NOPRINT SAS

【SAS】MEANSも集計に便利(デフォルトで結果を出力)【NOPRINT】

投稿日:2021年11月19日 更新日:

今回は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を指定すると、「結果」は中央値のみ表示する。

-MEANS, NOPRINT, SAS

執筆者:


comment

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

関連記事

【SAS】PUTは数値型を文字型に変換する

今回はPUTについて解説します。 /*数値8桁*/ data work.a; a = put(20061228, 8.); run; 数値型⇒文字型への変換はputを使う。数値型20061228⇒文字 …

【SAS】ODS PDFは結果内容をPDFファイルとして出力する

今回はPDFについて解説します。 /* pdf */ data data1; Id1=1111; Char1=”AAAA”; output; Id1=2222; Char1=”BBBB”; outpu …

【SAS】PROC PRINTTO LOGはログをファイルとして出力する。【NEW】

今回はPROC PRINTTO LOGについて解説します。 /* log_1 */ proc printto log = “/home/xxxxxxxxxx/sasuser.log” new; run …

【SAS】SAS日時値をyyyymmddhhmmss形式にする。【PUT】【DATETIME】【DATEPART】【TOD】

今回はdatetime関数を使って、SAS日時値を取得した後、yyyymmddhhmmss形式に加工する方法を解説していきます。 (参考PUT:【SAS】PUTはSAS日付値をフォーマットを変換して表 …

【SAS】PUTC関数は文字列に対して出力形式を指定して変換する。

今回はPUTC関数について解説します。 /* putc_1 */ proc format; value point “aaaa”=’Low’ “bbbb”=’High’; run; data data …