2016年9月16日金曜日

文字の日付をSAS日付値にする

これもずいぶん手垢のついたネタですが、先日引っかかったので投稿します。

要は2015-12-04T05:00のようなデータをSAS日付値にする話です。

data hoge;
  AA = "2015-12-04T05:00";
   HOGET=input(AA,e8601dt.);
run;

とするだけの話です。
引っかかったのは元の文字の日付をほかのデータセットから読み込む時に
文字の前後にブランクでも入っていたのでしょうか
inputを実行したら、ERRORが出て通らなかったのですね。

最後は読み込んだ文字変数にstripを使って前後のブランクを取り除いたことで(?)inputが通りました。

いまだにいまいち原因がわかっていないのですが、とりあえず通ったのでよしとしています。
文字変数に欠測データもいなかったので、errorが出ると思っていなくてびっくりしました。


20160927更新

SAS9.4で実行したらERRORなくいきました。
日付値に秒が入っていないことがERRORの原因ぽいです。
それにしてもstripかますと動くことの説明にはなりませんが・・・・
SAS9.4なら秒が日付値に入っていなくても滞りなく動くみたいです。

20170510更新
spritではなくcatsを使ってもinputが通りました。
相変わらずこれの原因、解決策がわかりません

1 件のコメント:

  1. 参考URL
    https://sas-boubi.blogspot.com/2018/07/sas93buge8601dt.html

    返信削除