本文概述
在SAS中, 运算符是符号, 用于执行加, 乘, 减, 除, 比较等计算。这些符号是SAS编程语言的内置部分, 因此我们可以将这些符号合并为一个表达式, 获得所需的输出。
SAS中有五种类型的操作员:
- 算术运算符
- 逻辑运算符
- 比较运算符
- 最小/最大运算符
- 优先运算符
算术运算符
算术运算符用于执行数学计算, 例如加法, 乘法, 减法, 除法等。下表描述了算术运算符及其运算。
Operator | Description | Example |
---|---|---|
+ | Addition | 12+2=14 |
– | Subtraction | 24-4=10 |
* | Multiplication | 6*3=32 |
/ | Division | 46/23=2 |
** | Exponentiation | 2**3=8 |
让我们通过一个示例来了解如何在SAS编程中使用算术运算符。
DATA Airthmatic_Operator;
input @1 A1 4.2@7 A2 3.1;
Add_result = A1+A2;
Sub_result = A1-A2;
Mult_result = A1*A2;
Div_result = A1/A2;
Expo_result = A1**A2;
datalines;
11.21 5.3
3.11 11
;
PROC PRINT DATA = Airthmatic_Operator;
RUN;
在SAS Studio中执行以上代码:
输出
从输出中可以看到, 所有值都是根据算术运算符计算得出的。
逻辑运算符
逻辑运算符用于评估表达式的真或假值。逻辑运算符的结果始终为布尔值, 即1或0。下表描述了逻辑运算符及其运算。
Operator | Description | Example |
---|---|---|
& | 此符号称为AND运算符。如果两个数据值都为true, 则结果为1, 否则为0。 | (5> 2&2> 3)给出0或false。 |
| | 此符号称为”或”运算符。如果任何一个数据值评估为true, 则结果为1, 否则为0。 | (10> 9&5> 3)给出1或true。 |
~ | 此符号称为NOT运算符。如果值评估为假, 则结果为1, 否则为0。 | NOT(8> 3)为1或true。 |
让我们通过一个示例来了解如何在SAS编程中使用逻辑运算符。
DATA Logical_Operator;
input @1 a1 5.2 @7 a2 4.1;
and_=(a1 > 10 & a2 > 5 );
or_ = (a1 > 12 | a2 > 15 );
not_ = ~( a2 > 7 );
datalines;
11.21 5.3
3.11 11.4
;
PROC PRINT DATA = Logical_Operator;
RUN;
在SAS Studio中执行以上代码:
输出
正如我们在输出中看到的那样, 所有值都根据逻辑运算符的评估产生布尔结果。
比较运算符
比较运算符用于根据相等性比较值。比较运算符的结果始终是布尔值, 即1(表示true)或0(表示false)。下表描述了比较运算符及其操作。
Operator | Description | Example |
---|---|---|
= | 此符号称为等号运算符。如果两个值相等, 则结果为1, 否则为0。 | (8 = 8)给出1。(4 = 8)给出0。 |
^= | 此符号称为NOT EQUAL运算符。如果两个值都不相等, 则结果为1, 否则为0。 | (3 ^ = 5)给出1.(5 ^ = 5)给出0。 |
< | 此符号称为”少付”运算符。 | (2 <9)给出1。(12 <9)给出0。 |
<= | 此符号称为”少于”或”等于”运算符。 | (3 <= 4)给出1.(4 <= 4)给出1.(7 <= 4)给出0。 |
> | 此符号称为”大于运算符”。 | (22> 20)给出1。(10> 20)给出0。 |
>= | 此符号称为”大于”或”等于”运算符。 | (10> = 5)给出1.(5> = 5)给出1.(3> = 5)给出0。 |
IN | 如果该值等于给定列表中的任何值, 则返回1, 否则返回0。 | (5, 7, 9, 8)中的9给出1.(5, 7, 9, 8)中的2给出0。 |
让我们通过一个示例来了解如何在SAS编程中使用比较运算符。
DATA Comparison_Operator;
input @1 a1 5.2 @7 a2 4.1;
EQ_ = (a1 = 11.21);
NEQ_= (a1 ^= 11.21);
GT_ = (a2 => 8);
LT_ = (a2 <= 12);
IN_ = a2 in( 6.2, 5.3, 12 );
datalines;
11.21 5.3
3.11 11.4
;
PROC PRINT DATA = Comparison_Operator;
RUN;
在SAS Studio中执行以上代码:
输出
从输出中可以看到, 所有值都根据比较运算符的评估产生布尔结果。
最小/最大运算符
这些运算符用于比较行中变量的值, 以从该行的值列表中返回最大值或最小值。下表介绍了Minimum / Maximum运算符及其操作。
Operator | Description | Example |
---|---|---|
MIN | 这组字母称为MIN运算符。它返回整行的最小值。 | MIN(45.2, 11.6, 15.41)得到11.6 |
MIN | 这组字母称为MAX运算符。它返回整个行中的最大值。 | MAX(46.3, 11.6, 15.41)得到46.3 |
DATA MYDATA1;
input @1 A1 5.2 @7 A2 4.1 @12 A3 6.3;
min_ = MIN(A1 , A2 , A3);
max_ = MAX( A1, A2 , A3);
datalines;
10.21 5.3 29.12
3.11 11.4 18.12
;
PROC PRINT DATA = MYDATA1;
RUN;
在SAS Studio中执行以上代码:
输出
从输出中可以看到, 最小值和最大值运算符已从两行的值列表中返回了最小值和最大值。
串联运算符
串联运算符用于串联两个或多个字符串值。下表描述了连接运算符及其操作。
Operator | Description | Example |
---|---|---|
|| | 此符号称为连接运算符。它连接两个或多个字符串值。 | ‘你好’||’ SAS提供Hello SAS |
DATA Concatenate_operator;
input A1 $ A2 $;
concat_ = (A1 || A2);
datalines;
Hello World
Hello SAS
;
PROC PRINT DATA = Concatenate_operator;
RUN;
在SAS Studio中执行以上代码:
输出
正如我们在输出中看到的, 两个字符串变量都已连接在一起。
优先运算符
优先运算符是一组运算符, 用于指示复杂表达式中存在多个运算符时的求值顺序。下表介绍了优先运算符及其操作。
Group | Order | Symbols |
---|---|---|
Group I | 右到左 | ** +-非最小或最大 |
第二组 | 左到右 | * / |
Group III | 左到右 | + – |
第四组 | 左到右 | || |
Group V | 左到右 | <<= = >= > |
评论前必须登录!
注册