避免SAS错误消息:"注意:函数INPUT的参数无效"

All*_*owe 4 input sas

有没有办法测试变量是否会失败SAS中的INPUT转换过程?或者,如果可以避免产生"注意:无效参数"消息?

data _null_;  
format test2 date9.;  
input test ;  
test2=INPUT(PUT(test,8.),yymmdd8.);  
if _error_ =1 then do;  
    _error_=0;  
    test2=INPUT(PUT(test-1,8.),yymmdd8.);  
end;  
put test2=;  
cards;  
20270229  
run;  
Run Code Online (Sandbox Code Playgroud)

Jay*_*ens 5

只包括"??" 在格式名称之前.您的示例已在下面进行了修改...

data null;
format test2 date9.;
input test ;
test2=INPUT(PUT(test,8.),?? yymmdd8.);
if error =1 then do;
error=0;
test2=INPUT(PUT(test-1,8.), ?? yymmdd8.);
end;
put test2=;
cards;
20270229
run;
Run Code Online (Sandbox Code Playgroud)

  • 我认为最好使用单个 ? 而不是双 ?? 在输入函数中。这样他仍然可以访问 _error_ 变量以用于数据步骤中的其余逻辑。否则 _error_ 将保持为 0。 (2认同)