Ich habe ein Makro geschrieben, um nach ungültigen Daten zu überprüfen und es auf '11111111' setzen, aber eine unerwartete erhalten HINWEIS: Ungültiges Argument zu Funktion INPUT. Der Grund für den Hinweis ist, dass die Quelldaten das Datum "0212-04-26" haben, was über die SAS-Daten liegt, die von A. D. 1582 bis A. D. 19.900 reichen. Jetzt suche ich nach einem ungültigen Datum ohne Nachricht.Auf gültige Daten mit SAS-Makro überprüfen
Mein Code:
%macro chkdate(datefld=, num_date=) ;
/* invalid date gets set to '11111111' */
if &datefld ne '0001-01-01' then do ;
t_date = input(compress(&datefld, '-'), yymmdd8.) ;
if t_date eq . then do ;
%errors(key_desc=Invalid Date, fname=&datefld,)
&datefld = '11111111' ;
end;
end;
%mend chkdate ;
dank
Das 'num_date =' Argument wird nirgends im Makro verwendet ... –
@DominicCommoise Entschuldigung Ich habe das Makro vor dem Posten hier geändert. Da die Frage hauptsächlich auf t_date = Eingabe liegt (compress (& datefld, '-'), yymmdd8.);. – Bharath