SAS日付値の処理におけるNOTEについて
[OS] ALL
[リリース] ALL
[キーワード] BASE, DATA, DATE, NOTE, MESSAGE
[質問]
DATAステップでSAS日付を得るために関数を利用すると、無効な入力に対してNOTEが表示されます。
[回答]
ご質問のような場合を想定した関数は用意されていないため、関数を利用する前に、妥当性を確認する処理を実行することになります。 DATA _NULL_ ; INPUT yy mm dd ; /* データが指定範囲以外は欠損値を設定 */ IF yy >= 1960 AND mm >= 1 AND mm <= 12 AND dd >= 1 THEN DO; t = DAY(INTNX('MONTH', MDY(mm, 1, yy), 0, 'END')) ; IF dd <= t THEN date1 = MDY(mm, dd, yy) ; END; ELSE date1 = . ; PUT date1= YYMMDDS10. ; /* 入力データ 3件目以外は範囲外 */ CARDS; 2003 2 29 2004 4 31 2004 4 30 RUN; |