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;
|
|