SAS -操作员

SAS中的运算符是用于数学,逻辑或比较表达式的符号.这些符号内置在SAS语言中,许多运算符可以组合在一个表达式中以给出最终输出.

下面是SAS类别的运算符列表.

  • 算术运算符

  • 逻辑运算符

  • 比较运算符

  • 最小/最大操作员

  • 连接操作员

我们将查看每个一个接一个.运算符总是与变量一起使用,这些变量是SAS程序正在分析的数据的一部分.

算术运算符

下表描述算术运算符的细节.假设两个数据变量 V1 V2 分别为 8 4 .

运算符描述示例
+加法V1 + V2 = 12
-减法V1-V2 = 4
*乘法V1 * V2 = 32
/分部V1/V2 = 2
**ExponentiationV1 ** 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.21 5.3
3.11  11
;
PROC PRINT DATA = MYDATA1;
RUN;

在运行上面的代码时,我们得到以下输出.

operators_arithmrtic

逻辑运算符

下表描述了逻辑运算符的详细信息.这些运算符评估表达式的真值.所以逻辑运算符的结果总是1或0.让我们假设两个数据变量 V1 V2 ,其值 8 4 分别.

运算符描述示例
&AND运算符.如果两个数据值都评估为真,则结果
为1,否则为0.
(V1> 2& V2> 3)给出0.
|OR运算符.如果任何一个数据值评估为真,则
结果为1,否则为0.
(V1> 9& V2> 3)为1./td>
NOT运算符. NOT运算符的结果是表达式
,其值为FALSE或缺失值为1,否则为0.
NOT(V1> 3)是1.

示例

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;

在运行上面的代码时,我们得到以下输出.

operators_logical

比较运算符

下表描述了比较运算符的详细信息.这些运算符比较变量的值,结果是1表示TRUE的真值,0表示False.假设两个数据变量 V1 V2 分别为 8 4 .

运算符描述示例
=EQUAL运算符.如果两个数据值相等,则结果
为1,否则为0.
(V1 = 8)给出1.
^ =NOT EQUAL运算符.如果两个数据值都不相等,则
结果为1,否则为0.
(V1 ^ = V2)给出1.
<少于操作员.(V2<V2)给出1.
< =少于或等于操作员.(V2 <= 4)给出1.
>大于操作员.(V2> V1)给出1.
> =大于或等于操作员.(V2> = V1)给出0.
ININ运算符.如果变量的值等于给定值列表中值的任何一个
,则返回1,否则返回0.
V1 in(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;

在运行上面的代码时,我们得到以下输出.

operators_comparison

最小/最大运算符

下表描述了最小值/最大值运算符的详细信息.这些运算符比较一行中变量的值,并返回行中值列表的最小值或最大值.

运算符描述示例
MINMIN运算符.它从行中的值列表返回最小值.MIN(45.2,11.6,15.41)给出11.6
MAXMAX运算符.它从行中的值列表返回最大值.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 29.012
3.11  11.4 18.512
;
PROC PRINT DATA = MYDATA1;
RUN;

在运行上面的代码时,我们得到以下输出.

operators_minmax

连接运算符

下表描述了连接运算符的详细信息.此运算符连接两个或多个字符串值.返回单个字符值.

运算符描述示例
||连接运算符.它返回两个或多个值的串联.'Hello'||'World'给出Hello World

示例

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

在运行上面的代码时,我们得到以下输出.

operators_concate

运算符优先级

运算符优先级表示复杂表达式中存在的多个运算符的求值顺序.下表描述了一组运算符中的优先顺序.

订单符号
第一组权利左** +  -  NOT MIN MAX
第二组从左到右*/
第三组从左到右+  -
第IV组从左到右||
第V组从左到右< < = => =>