PICTUREステートメントで、年・月を分割するフォーマットを作成する

[OS]ALL
[リリース] 8.1, 8.2
[キーワード] FORMAT, PICTURE, %b, %Y, SPLIT= OPTION

[質問]

日付の出力形式を変更する方法を教えてください。

[回答]

SAS System 8eでは、FORMATプロシジャのPICTUREステートメント、および日付データの出力管理に追加された「%b」や「%Y」などの予約語を使用して、SAS日時形式のデータから年・月に該当する値を抽出・設定できます。

次のサンプルプログラム1では、「%b(月の名称)」、「%Y(西暦年)」という予約語を使用して、ユーザー定義フォーマットmonyrを作成しています。このサンプルでは、月の名称と西暦年の間に「-(ハイフン)」を挟む形式を指定しています。

サンプルプログラム1:


  PROC FORMAT ;
    PICTURE monyr (DEFAULT = 8)
            low - high = '%b-%Y'(DATATYPE=date) ;
  RUN ;

  DATA _null_ ;
    a = DATE();
    PUT a = monyr.;
  RUN ;

実行結果:


a=APR-2003

SAS/GRAPHのAXISステートメントに追加されたSPLIT=オプションを併用すれば、月と年を分割出力することもできます。

サンプルプログラム2では、SPLIT=オプションでハイフンを区切り文字として定義します。そして、年月日表示にユーザー定義フォーマットmonyrを指定します。この併用により、FORMATプロシジャで「APR-2001」のように出力される日付データは、「-(ハイフン)」を区切り文字として、月と年を分割した形 式で出力されます。

サンプルプログラム2:


  AXIS1 SPLIT = "-" ;            /* split= オプション*/
  PROC GPLOT DATA = work.month ;
    PLOT  actual * month /
    HAXIS = axis1 ;
    FORMAT month monyr. ;
       /* ユーザー定義フォーマットの適用 */
  RUN ;QUIT ;

実行結果:

実行結果