个性化阅读
专注于IT技术分析

SAS运算符用法详细图解

本文概述

在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中执行以上代码:

SAS运算符

输出

SAS运算符

从输出中可以看到, 所有值都是根据算术运算符计算得出的。

逻辑运算符

逻辑运算符用于评估表达式的真或假值。逻辑运算符的结果始终为布尔值, 即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中执行以上代码:

SAS运算符

输出

SAS运算符

正如我们在输出中看到的那样, 所有值都根据逻辑运算符的评估产生布尔结果。

比较运算符

比较运算符用于根据相等性比较值。比较运算符的结果始终是布尔值, 即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中执行以上代码:

SAS运算符

输出

SAS运算符

从输出中可以看到, 所有值都根据比较运算符的评估产生布尔结果。

最小/最大运算符

这些运算符用于比较行中变量的值, 以从该行的值列表中返回最大值或最小值。下表介绍了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中执行以上代码:

SAS运算符

输出

SAS运算符

从输出中可以看到, 最小值和最大值运算符已从两行的值列表中返回了最小值和最大值。

串联运算符

串联运算符用于串联两个或多个字符串值。下表描述了连接运算符及其操作。

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中执行以上代码:

SAS运算符

输出

SAS运算符

正如我们在输出中看到的, 两个字符串变量都已连接在一起。

优先运算符

优先运算符是一组运算符, 用于指示复杂表达式中存在多个运算符时的求值顺序。下表介绍了优先运算符及其操作。

Group Order Symbols
Group I 右到左 ** +-非最小或最大
第二组 左到右 * /
Group III 左到右 + –
第四组 左到右 ||
Group V 左到右 <<= = >= >

赞(0) 打赏
未经允许不得转载:srcmini » SAS运算符用法详细图解
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏