SAS运算符用法详细图解

本文概述

  • 算术运算符
  • 逻辑运算符
  • 比较运算符
  • 最小/最大运算符
  • 串联运算符
  • 优先运算符
【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.1111 ; PROC PRINT DATA = http://www.srcmini.com/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.1111.4 ; PROC PRINT DATA = http://www.srcmini.com/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.1111.4 ; PROC PRINT DATA = http://www.srcmini.com/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.1111.4 18.12 ; PROC PRINT DATA = http://www.srcmini.com/MYDATA1; RUN;

在SAS Studio中执行以上代码:
SAS运算符用法详细图解

文章图片
输出
SAS运算符用法详细图解

文章图片
从输出中可以看到, 最小值和最大值运算符已从两行的值列表中返回了最小值和最大值。
串联运算符 串联运算符用于串联两个或多个字符串值。下表描述了连接运算符及其操作。
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中执行以上代码:
SAS运算符用法详细图解

文章图片
输出
SAS运算符用法详细图解

文章图片
正如我们在输出中看到的, 两个字符串变量都已连接在一起。
优先运算符 优先运算符是一组运算符, 用于指示复杂表达式中存在多个运算符时的求值顺序。下表介绍了优先运算符及其操作。
Group Order Symbols
Group I 右到左 ** +-非最小或最大
第二组 左到右 * /
Group III 左到右 + –
第四组 左到右 ||
Group V 左到右 < < = = > = >

    推荐阅读