2016年10月24日月曜日

小数点を残しつつ不等号を消して文字を数字にする話

数値を文字値にしたいときは往々にしてあると思います。
今回はそんなお話

文字値を数字にするときはinput(hoge,best.)かなんかで書くと思います。
ただ、不等号などの文字を消そうとするとき、うっかり小数点「.」まで消したこと、あると思います。
私だけですかね。

そんな時はcompressの第三引数を駆使すると何とかなります。

data hoge;
    AA = "11"  ; output;
    AA = "11.7"; output;
    AA = "25"  ; output;
    AA = "< 10"; output;
run;

data hogehoge;
    set hoge;
    BB = input( compress(AA , "." , "kd" ) , best.);
run;

compressは意外と便利です。