SASの演算子の書き方について

大した話じゃないです。

演算子の書き方って、自分は「これしかないだろって」思っているものですが
案外そうではなくて、びっくりすることあるなという話です。

例えば、Xが1であるデータを抽出する時は

where X=1;と書きますが、where X eq 1;とも書けます。

>はgt <はlt などなど。

以前、コード中に一切記号がでてこないプログラムをレビューしたことがあり
変数名も全部小文字で、2文字の変数が多かったこともあり、ちょっとまいりました。
「Fortran数十年やってたものでね」と言われましたが、みんなそういうものなのか不明

また、こんなこともありました。
○○さん「私さんは、なんでいつもノティン演算子を使わずにノットインで書くんですか?」
私「?? ノティンってなに??」

実は
where X not in (1,2); 
where X notin (1,2); とかけるんですね。

notinのことをノティン演算子と読んでいたんですね。
読み方、ノティンじゃねぇだろといまでも思いますが、、。

たとえば今Xが1から4で4obsのデータセットがあったとします。

data Q1;
 do X=1 to 4;
  output;
 end;
run;


以下のコードは全て正しく実行されます。

data A1;
 set Q1;
 where X~>2;
run;

data A2;
 set Q1;
 where X^>2;
run;

data A3;
 set Q1;
 where X not >2;
run;

data A4;
 set Q1;
 where X is not >2;
run;

↑これら4つ、全部、X<=2です。


data A5;
 set Q1;
 where X ng 2;
run;

↑not greater thanの略ですね


data A6;
 set Q1;
 where X ^gt 2;
run;

↑not greater thanです

data A7;
 set Q1;
 where X=1|X=4;
run;

↑orです。

data A8;
 set Q1;
 where X=1!X=4;
run;

↑orです。

data A9;
 set Q1;
 where X=1 & X is not null;
run;

↑andです。

data A0;
 set Q1;
 where X notin (1,3);
run;

↑not inです。ノティンです。

0 件のコメント:

コメントを投稿