本文概述
- 算术运算符
- 逻辑运算符
- 比较运算符
- 最小/最大运算符
- 串联运算符
- 优先运算符
SAS中有五种类型的操作员:
- 算术运算符
- 逻辑运算符
- 比较运算符
- 最小/最大运算符
- 优先运算符
Operator | Description | Example |
---|---|---|
+ | Addition | 12+2=14 |
– | Subtraction | 24-4=10 |
* | Multiplication | 6*3=32 |
/ | Division | 46/23=2 |
** | Exponentiation | 2**3=8 |
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.1111
;
PROC PRINT DATA = http://www.srcmini.com/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。 |
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.1111.4
;
PROC PRINT DATA = http://www.srcmini.com/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。 |
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.1111.4
;
PROC PRINT DATA = http://www.srcmini.com/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.1111.4 18.12
;
PROC PRINT DATA = http://www.srcmini.com/MYDATA1;
RUN;
在SAS Studio中执行以上代码:
文章图片
输出
文章图片
从输出中可以看到, 最小值和最大值运算符已从两行的值列表中返回了最小值和最大值。
串联运算符 串联运算符用于串联两个或多个字符串值。下表描述了连接运算符及其操作。
Operator | Description | Example |
---|---|---|
|| | 此符号称为连接运算符。它连接两个或多个字符串值。 | ‘ 你好’ ||’ SAS提供Hello SAS |
DATA Concatenate_operator;
inputA1 $ A2 $;
concat_ = (A1 || A2);
datalines;
Hello World
Hello SAS
;
PROC PRINT DATA = http://www.srcmini.com/Concatenate_operator;
RUN;
在SAS Studio中执行以上代码:
文章图片
输出
文章图片
正如我们在输出中看到的, 两个字符串变量都已连接在一起。
优先运算符 优先运算符是一组运算符, 用于指示复杂表达式中存在多个运算符时的求值顺序。下表介绍了优先运算符及其操作。
Group | Order | Symbols |
---|---|---|
Group I | 右到左 | ** +-非最小或最大 |
第二组 | 左到右 | * / |
Group III | 左到右 | + – |
第四组 | 左到右 | || |
Group V | 左到右 | < < = = > = > |
推荐阅读
- 什么是SAS标准偏差(详细图解)
- SAS程序结构详细解释
- 什么是SAS宏(宏用法详解)
- SAS函数用法详细图解
- uniapp中使用阿里巴巴图标iconfont
- 如何在Windows 10上安装.Appx或.AppxBundle软件
- Appium查看应用包名
- Spring Boot 之Application.properties配置大全
- Android中的进程与线程