数行を要するようなプログラムを1行におさめる事を意識した小技や基本技を紹介したいと思います。
まずは初歩的なものから。
コードやスコアなどの値を以下のように逆転させたいことがあります。
1 → 3
2 → 2
3 → 1
サンプルデータ
data DT1; input V1; cards; 1 3 2 ; run; データセットDT1 V1 1 3 2 V1 V2 1 3 3 1
2 2
|
1行で書く方法。
まじめに書くとこんな感じですが、
data DT2; set DT1; if V1 = 1 then V2 = 3 ; if V1 = 2 then V2 = 2 ; if V1 = 3 then V2 = 1 ; run; |
以下の式を当てはめて書くと1文でいけます。
(開始値 + 終了値) - 変数値
サンプルの場合、「1~3」の範囲の値なので、当てはめると「(1 + 3) - V1」となります。
data DT2; set DT1; V2 = 4 - V1 ; run; |
0 件のコメント:
コメントを投稿