SAS 運算子



SAS 中的運算子是一個符號,用於數學、邏輯或比較表示式。這些符號是內置於 SAS 語言中的,許多運算子可以組合在一個表示式中以給出最終輸出。

以下是 SAS 運算子類別的列表。

  • 算術運算子
  • 邏輯運算子
  • 比較運算子
  • 最小/最大運算子
  • 連線運算子

我們將逐一檢視每個運算子。運算子始終與作為 SAS 程式分析的資料一部分的變數一起使用。

算術運算子

下表描述了算術運算子的詳細資訊。讓我們假設有兩個資料變數V1V2,其值分別為84

運算子 描述 示例
+ 加法 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;

執行上述程式碼後,我們將獲得以下輸出。

operators_arithmrtic

邏輯運算子

下表描述了邏輯運算子的詳細資訊。這些運算子評估表示式的真值。因此,邏輯運算子的結果始終為 1 或 0。讓我們假設有兩個資料變數V1V2,其值分別為84

運算子 描述 示例
& AND 運算子。如果兩個資料值都評估為真,則結果為 1,否則為 0。 (V1>2 & V2 > 3) 的結果為 0。
| OR 運算子。如果任何一個數據值評估為真,則結果為 1,否則為 0。 (V1>9 & V2 > 3) 的結果為 1。
~ NOT 運算子。值為 FALSE 或缺失值的表示式的 NOT 運算子結果為 1,否則為 0。 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;

執行上述程式碼後,我們將獲得以下輸出。

operators_logical

比較運算子

下表描述了比較運算子的詳細資訊。這些運算子比較變數的值,結果是真值,TRUE 為 1,FALSE 為 0。讓我們假設有兩個資料變數V1V2,其值分別為84

運算子 描述 示例
= 等於運算子。如果兩個資料值相等,則結果為 1,否則為 0。 (V1 = 8) 的結果為 1。
^= 不等於運算子。如果兩個資料值不相等,則結果為 1,否則為 0。 (V1 ^= V2) 的結果為 1。
< 小於運算子。 (V2 < V2) 的結果為 1。
<= 小於或等於運算子。 (V2 <= 4) 的結果為 1。
> 大於運算子。 (V2 > V1) 的結果為 1。
>= 大於或等於運算子。 (V2 >= V1) 的結果為 0。
IN IN 運算子。如果變數的值等於給定值列表中的任何一個值,則返回 1,否則返回 0。 V1 in (5,7,9,8) 的結果為 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;

執行上述程式碼後,我們將獲得以下輸出。

operators_comparison

最小/最大運算子

下表描述了最小/最大運算子的詳細資訊。這些運算子比較一行中變數的值,並返回行中值列表中的最小值或最大值。

運算子 描述 示例
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;

執行上述程式碼後,我們將獲得以下輸出。

operators_minmax

連線運算子

下表描述了連線運算子的詳細資訊。此運算子連線兩個或多個字串值。返回單個字元值。

運算子 描述 示例
|| 連線運算子。它返回兩個或多個值的連線。 'Hello'||' World' 的結果為 Hello World

示例

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

執行上述程式碼後,我們將獲得以下輸出。

operators_concate

運算子優先順序

運算子優先順序指示覆雜表示式中多個運算子的計算順序。下表描述了運算子組內的優先順序順序。

順序 符號
I 組 從右到左 ** + - NOT MIN MAX
II 組 從左到右 * /
III 組 從左到右 + -
IV 組 從左到右 ||
V 組 從左到右 < <= = >= >
廣告
© . All rights reserved.