SAS日付値の表示方法の変更

[OS]ALL
[リリース] 5.18, 6.07, 6.08, 6.09, 6.10
[キーワード] base, datastep, date, translate, function, -, /, format, yymmdd8., put, character

[質問]

SAS日付値で保存されたデータをYYMMDD8.フォーマットで出力すると、以下のように「- (ハイフン)」で区切られます。 これを「/ (スラッシュ)」など別の符号で表示したいのですが、そのような日付フォーマットはあるでしょうか。

  SASデータセット:DATE
  OBS        DATE
   1     95-08-15
   2     95-08-16
   3     95-08-17

[回答]

日付フォーマットとしては用意されておりません。 ユーザ定義フォーマットを作成する方法もありますが、以下のように、DATAステップでTRANSLATE関数を使用して簡単に変更することができます。 TRANSLATE関数は文字列の任意の単語を置き換える関数のためあらかじめ日付データを文字値に変換しておく必要があります。

以下の例では、ハイフンをスラッシュに置き換えます。

  data trans;
    length date1 $8;
    set data;
    date1=translate(put(date,yymmdd8.),'-','/');
  run;
  proc print; run;
  [SASデータセット:TRANS]
  OBS    DATE        DATE1
   1     13010    95/08/15
   2     13011    95/08/16
   3     13012    95/08/17