FREQプロシジャでの一元度数表の出力フォーマット変更

[OS] ALL
[リリース] SAS 8.0以降
[キーワード] BASE, FREQ, ONEWAY, FORMAT, ODS, TEMPLATE

[質問]

FREQプロシジャを使って一次元の度数集計を行なっていますが、この出力フォーマットを変更するにはどうすればよいでしょうか。

[回答]

TEMPLATEプロシジャでテンプレートを加工することで、任意の出力形式を指定することができます。

プログラム例:


                       /*  TEMPLATEプロシジャで、テンプレートを加工 */
          /* カスタマイズしたい箇所のフォーマットのみを変更します。 */
PROC TEMPLATE;
  EDIT base.freq.onewayfreqs;
    PARENT=base.freq.onewaylist;
      EDIT Frequency;                               /* 度数 */
        FORMAT = COMMA6.;
      END;
      EDIT Percent;                           /* パーセント */
        FORMAT = 6.3;
      END;
      EDIT CumFrequency;                        /* 累積度数 */
        FORMAT = COMMA6.;
      END;
      EDIT CumPercent;                    /* 累積パーセント */
        FORMAT = 6.3;
      END;
  END;
RUN;

/* PROC FREQの実行 */
PROC FREQ data=sashelp.class ;
  TABLES sex ;
RUN ;

出力結果:


                                   累積        累積
   Sex     度数     パーセント     度数     パーセント
   ---------------------------------------------------
   F           9      47.368           9      47.368
   M          10      52.632          19      100.00

また、編集したテンプレートをデフォルトの設定に戻すには、次のプログラムをサブミットしてテンプレートを削除します。


                                          /* テンプレートの削除 */
PROC TEMPLATE;
  DELETE base.freq.onewayfreqs;
RUN;