SAS-オペレーター

SASの演算子は、数式、論理式、または比較式で使用される記号です。これらの記号はSAS言語に組み込まれており、多くの演算子を1つの式に組み合わせて、最終的な出力を得ることができます。

以下は、SASカテゴリのオペレーターのリストです。

  • 算術演算子
  • 論理演算子
  • 比較演算子
  • 最小/最大演算子
  • 連結演算子

それぞれを一つずつ見ていきます。演算子は常に、SASプログラムによって分析されているデータの一部である変数とともに使用されます。

算術演算子

次の表に、算術演算子の詳細を示します。2つのデータ変数を想定しましょうV1 そして V2値付き 8 そして 4 それぞれ。

オペレーター 説明
+ 添加 V1 + V2 = 12
- 減算 V1-V2 = 4
* 乗算 V1 * V2 = 32
/ 分割 V1 / V2 = 2
**** べき乗 V1 ** V2 = 4096

DATA MYDATA1;
input @1 COL1 4.2	@7 COL2 3.1; 
Add_result = COL1+COL2;
Sub_result = COL1-COL2;
Mult_result = COL1*COL2;
Div_result = COL1/COL2;
Expo_result = COL1**COL2;
datalines;
11.21 5.3
3.11  11
;
PROC PRINT DATA = MYDATA1;
RUN;

上記のコードを実行すると、次の出力が得られます。

論理演算子

次の表に、論理演算子の詳細を示します。これらの演算子は、式の真理値を評価します。したがって、論理演算子の結果は常に1または0になります。2つのデータ変数を想定しましょう。V1 そして V2値付き 8 そして 4 それぞれ。

オペレーター 説明
AND演算子。両方のデータ値がtrueと評価された場合、結果は1になり、それ以外の場合は0になります。 (V1> 2&V2> 3)は0を与えます。
| OR演算子。データ値のいずれかがtrueと評価された場合、結果は1になり、それ以外の場合は0になります。 (V1> 9&V2> 3)は1です。
NOT演算子。値がFALSEであるか、欠落している値が1であるか、それ以外の場合は0である式の形式のNOT演算子の結果。 NOT(V1> 3)は1です。

DATA MYDATA1;
input @1 COL1 5.2	@7 COL2 4.1; 
and_=(COL1 > 10 & COL2 > 5 );
or_ = (COL1 > 12 | COL2 > 15 );
not_ = ~( COL2 > 7 );
datalines;
11.21 5.3
3.11  11.4
;
PROC PRINT DATA = MYDATA1;
RUN;

上記のコードを実行すると、次の出力が得られます。

比較演算子

次の表に、比較演算子の詳細を示します。これらの演算子は変数の値を比較し、結果はTRUEの場合は1、Falseの場合は0で表される真理値です。2つのデータ変数を想定しましょうV1 そして V2値付き 8 そして 4 それぞれ。

オペレーター 説明
= EQUAL演算子。両方のデータ値が等しい場合、結果は1になり、そうでない場合は0になります。 (V1 = 8)は1を与えます。
^ = NOTEQUAL演算子。両方のデータ値が等しくない場合、結果は1になり、そうでない場合は0になります。 (V1 ^ = V2)は1を与えます。
< LESSTHAN演算子。 (V2 <V2)は1を与えます。
<= LESSTHANまたはEQUALTO演算子。 (V2 <= 4)は1を与えます。
>> 大なり記号演算子。 (V2> V1)は1を与えます。
> = 大なり記号または同等の演算子。 (V2> = V1)は0を与えます。
IN演算子。変数の値が指定された値のリスト内の値のいずれかと等しい場合は1を返し、そうでない場合は0を返します。 (5,7,9,8)のV1は1を与えます。

DATA MYDATA1;
input @1 COL1 5.2	@7 COL2 4.1; 
EQ_ = (COL1 = 11.21);
NEQ_= (COL1 ^= 11.21);
GT_ = (COL2 => 8);
LT_ = (COL2 <= 12);
IN_ = COL2 in( 6.2,5.3,12 );
datalines;
11.21 5.3
3.11  11.4
;
PROC PRINT DATA = MYDATA1;
RUN;

上記のコードを実行すると、次の出力が得られます。

最小/最大演算子

次の表に、最小/最大演算子の詳細を示します。これらの演算子は、行全体の変数の値を比較し、行の値のリストから最小値または最大値が返されます。

オペレーター 説明
MIN MIN演算子。行の値のリストから最小値を返します。 MIN(45.2,11.6,15.41)は11.6を与えます
MAX MAXオペレーター。行の値のリストから最大値を返します。 MAX(45.2,11.6,15.41)は45.2を与えます

DATA MYDATA1;
input @1 COL1 5.2	@7 COL2 4.1 @12 COL3 6.3; 
min_ = MIN(COL1 , COL2 , COL3);
max_ = MAX( COL1, COl2 , COL3);
datalines;
11.21 5.3 29.012
3.11  11.4 18.512
;
PROC PRINT DATA = MYDATA1;
RUN;

上記のコードを実行すると、次の出力が得られます。

連結演算子

次の表に、連結演算子の詳細を示します。この演算子は、2つ以上の文字列値を連結します。1文字の値が返されます。

オペレーター 説明
|| 連結演算子。2つ以上の値の連結を返します。 'こんにちは' || ' World 'はHelloWorldを提供します

DATA MYDATA1;
input  COL1 $	COL2 $  COL3 $; 
concat_ = (COL1 || COL2 || COL3);
datalines;
Tutorial s point
simple easy learning
;
PROC PRINT DATA = MYDATA1;
RUN;

上記のコードを実行すると、次の出力が得られます。

オペレーターの優先順位

演算子の優先順位は、複雑な式に存在する複数の演算子の評価の順序を示します。次の表は、演算子のグループでの優先順位を示しています。

グループ 注文 記号
グループI 右から左へ ** +-最小最大ではありません
グループII 左から右へ * /
グループIII 左から右へ +-
グループIV 左から右へ ||
グループV 左から右へ << = => =>