SAS運(yùn)算符

2022-11-03 09:33 更新

SAS中的運(yùn)算符是在數(shù)學(xué),邏輯或比較表達(dá)式中使用的符號(hào)。 這些符號(hào)內(nèi)置到SAS語(yǔ)言中,并且許多運(yùn)算符可以組合在單個(gè)表達(dá)式中以給出最終輸出。

以下是SAS運(yùn)算符類別的列表。

  • 算術(shù)運(yùn)算符
  • 邏輯運(yùn)算符
  • 比較運(yùn)算符
  • 最小/最大運(yùn)算符
  • 連接運(yùn)算符

我們逐一觀察。 運(yùn)算符總是與作為由SAS程序分析的數(shù)據(jù)的一部分的變量一起使用。

算術(shù)運(yùn)算符

下表介紹了算術(shù)運(yùn)算符的詳細(xì)信息。 讓我們假設(shè)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.20 5.3
3.11  1.1
;
PROC PRINT DATA=MYDATA1;
RUN;

在運(yùn)行上面的代碼,我們可以得到下面的輸出。

邏輯運(yùn)算符

下表描述了邏輯運(yùn)算符的詳細(xì)信息。 這些運(yùn)算符可以計(jì)算表達(dá)式的真值。 因此,邏輯運(yùn)算符的結(jié)果總是1或0.我們假設(shè)兩個(gè)數(shù)據(jù)變量V1和V2的值分別為8和4。

操作者 描述
AND運(yùn)算符。 如果兩個(gè)數(shù)據(jù)值都為真,則結(jié)果為1,否則為0。 (V1< 2 & V2> 3)的真值為0
(V1< 2 & V2< 3)的真值為0
(V1> 2 & V2< 3)的真值為0
(V1 > 2 & V2> 3)的真值為1
| OR運(yùn)算符。 如果任何一個(gè)數(shù)據(jù)值求值為真,則結(jié)果為1,否則為0。 (V1> 9 | V2> 3)的真值為1
(V1> 9 | V2< 3)的真值為0
(V1< 9 | V2> 3)的真值為1
(V1< 9 | V2< 3)的真值為1
? NOT運(yùn)算符。 NOT運(yùn)算符以值為FALSE或缺少值的表達(dá)式形式的結(jié)果為1,否則為0。 (V1> 3)的真值為1。
~(V1> 3)的真值為0。

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;

在運(yùn)行上面的代碼,我們可以得到下面的輸出。

比較運(yùn)算符

下表描述了比較運(yùn)算符的詳細(xì)信息。 這些運(yùn)算符比較變量的值,結(jié)果是真值,1表示TRUE,0表示False。 讓我們假設(shè)分別具有值8和4的兩個(gè)數(shù)據(jù)變量V1和V2。

操作者 描述
= EQUAL運(yùn)算符。 如果兩個(gè)數(shù)據(jù)值相等,則結(jié)果為1,否則為0。 (V1 = 8)給出1。
^ = NOT EQUAL運(yùn)算符。 如果兩個(gè)數(shù)據(jù)值不相等,則結(jié)果為1,否則為0。 (V1 ^ = V2)給出1。
< LESS THAN運(yùn)算符。 (V2 <V2)提供1。
<= 小于或等于運(yùn)算符。 (V2 <= 4)給出1。
> 大于運(yùn)算符。 (V2> V1)給出1。
> = 大于或等于運(yùn)算符。 (V2> = V1)給出0。
IN運(yùn)算符。 如果變量的值等于給定值列表中的任何一個(gè)值,則返回1 else否則返回0。 V1在(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;

在運(yùn)行上面的代碼,我們可以得到下面的輸出。

最小/最大運(yùn)算符

下表描述了最小/最大運(yùn)算符的詳細(xì)信息。 這些運(yùn)算符比較一行中變量的值,并返回行中的值列表中的最小值或最大值。

操作者 描述
MIN MIN運(yùn)算符。 它從行中的值列表返回最小值。 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 9.012
3.11  11.4 18.512
;
PROC PRINT DATA=MYDATA1;
RUN;

在運(yùn)行上面的代碼,我們可以得到下面的輸出。

連接運(yùn)算符

下表描述了Concatenation運(yùn)算符的詳細(xì)信息。 此運(yùn)算符連接兩個(gè)或多個(gè)字符串值。 返回單個(gè)字符值。

操作者 描述
|| 連接運(yùn)算符。 它返回兩個(gè)或多個(gè)值的連接。 'Hello'||'World' 輸出 HelloWorld

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

在運(yùn)行上面的代碼,我們可以得到下面的輸出。

運(yùn)算符優(yōu)先級(jí)

運(yùn)算符優(yōu)先級(jí)表示復(fù)雜表達(dá)式中存在的多個(gè)運(yùn)算符的求值順序。 下表描述了一組運(yùn)算符中的優(yōu)先順序。

順序 符號(hào)
第一組 右到左 ** + - NOT MIN MAX
第二組 左到右 * /
第三組 左到右 + -
第四組 左到右 ||
第五組 左到右 <<= => =>

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)