2014年3月25日火曜日

1行プログラムその3:数値を任意の文字に置き換える。

その2」の続き、、というかやってる事は同じ。
今回は「1→なし」「2→あり」「3→不明」と文字に置き換えたい場合、CHOOSEC関数を使うと1文でいけます。

1 → なし
2 → あり
3 → 不明

サンプルデータ

data DT1;
input V1;
cards;
1
3
2
;
run;

データセットDT1
V1
 1
 3
 2

求めたい結果
V1  V2
 1    なし
 3    不明
 2    あり



1行で書く方法。

まじめに書くとこんな感じですが、
data DT2;
   length V2  $6.;
   set DT1;
   if V1 = 1 then V2="なし";
   if V1 = 2 then V2="あり";
   if V1 = 3 then V2="不明";
run;


CHOOSEC関数の場合。
data DT2;
   length V2  $6.;
   set DT1;
   if V1^=. then V2=choosec(V1, "なし","あり","不明");
run;

CHOOSEC関数の構文は「choosec(N, X1,X2…)」でN番目のXの値を取得することが出来ます。
Xは文字型の変数または値である必要があります。


今回の使用法の注意点

前回と注意点は同じで、
V1に入る値は1~10くらいまでならいいけど、100とか飛び離れた値があると関数の引数を100個指定しなきゃいけなくなるので実用的じゃなくなる → choosec(N, X1,X2…X100)

0 件のコメント:

コメントを投稿