文字値の検証
[OS] ALL
[リリース] 6.12, 8.2
[キーワード] DATA, FUNCTION, VERIFY
[質問]文字変数から数値変数に変換する際にINPUT関数を利用していますが、数字以外の文字がある場合、次のようなNOTEが発生してしまいます。 NOTE: 無効な関数INPUT の引数が行100 カラム11 にあります。NOTEを発生させないよう、変数の中身を確認後、INPUT関数で処理するようなことはできないでしょうか?
[回答]
文字変数内の文字を検証するには、VERIFY関数が便利です。 プログラム例 DATA source ; str = "123" ; OUTPUT; str = "AAA" ; OUTPUT; str = " " ; OUTPUT; RUN; DATA dest ; SET source ; /* 数字のみである場合、変数v は0 となります*/ v = VERIFY(TRIM(str) , '0123456789'); IF (v = 0) THEN num = INPUT(str, 8.); DROP v; RUN; |