Sas 简明教程

SAS - Operators

SAS 中的运算符是一种符号,用于数学、逻辑或比较表达式中。这些符号内置于 SAS 语言中,许多运算符可以组合到单个表达式中以提供最终输出。

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

  1. Arithmetic Operators

  2. Logical Operators

  3. Comparison Operators

  4. Minimum/Maximum Operators

  5. Concatenation Operator

我们将逐个查看每个运算符。运算符始终与作为 SAS 程序正在分析的数据一部分的变量一起使用。

Arithmetic Operators

下表描述了算术运算符的详细信息。我们假设两个数据变量 V1V2*with values *84

Operator

Description

Example

+

Addition

V1+V2=12

-

Subtraction

V1-V2=4

*

Multiplication

V1*V2=32

/

Division

V1/V2=2

**

Exponentiation

V1**V2=4096

Example

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

Logical Operators

下表描述了逻辑运算符的详细信息。这些运算符计算表达式的真值。因此,逻辑运算符的结果始终是 1 或 0。我们假设两个数据变量 V1V2*with values *84

Operator

Description

Example

&

AND 运算符。如果两个数据值都计算为真,则结果为 1,否则为 0。

(V1>2 & V2 > 3) 得 0。

OR 运算符。如果任何一个数据值求值为真,则结果为 1,否则为 0。

(V1>9 & V2 > 3) 为 1。

~

NOT 运算符。NOT 运算符的结果为虚假或缺失值的表达式的形式为 1,否则为 0。

Example

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

Comparison Operators

下表对比较运算符的详细信息进行了描述。这些运算符将变量的值进行比较,结果为真值,真为 1,假为 0。让我们假设两个数据变量分别为 V1V2*with values *84

Operator

Description

Example

=

EQUAL 运算符。如果两个数据值相等,则结果为 1,否则为 0。

(V1 = 8) 给出 1。

^=

NOT EQUAL 运算符。如果两个数据值不相等,则结果为 1,否则为 0。

(V1 ^= V2) 给出 1。

<

The LESS THAN Operator.

(V2 < V2) 给出 1。

小于或等于运算符。

(V2 ⇐ 4) 给出 1。

>

The GREATER THAN Operator.

(V2 > V1) 给出 1。

>=

大于或等于运算符。

(V2 >= V1) 给出 0。

IN

IN 运算符。如果变量的值等于给定值列表中的任何一个值,它返回 1,否则返回 0。

V1 in (5,7,9,8) 给出 1。

Example

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

Minimum/Maximum Operators

下表对最小/最大运算符的详细信息进行了描述。这些运算符将变量的值在行中进行比较,并且从行中值的列表中返回最小值或最大值。

Operator

Description

Example

MIN

MIN 运算符。它返回行中值的列表中的最小值。

MIN(45.2,11.6,15.41) gives 11.6

MAX

MAX 运算符。它返回行中值的列表中的最大值。

MAX(45.2,11.6,15.41) gives 45.2

Example

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

Concatenation Operator

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

Operator

Description

Example

连接运算符。它返回两个或多个值的连接。

'Hello'

Example

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

通过运行以上代码,我们得到以下输出。

operators concate

Operators Precedence

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

Group

Order

Symbols

Group I

Right to Left

** + - NOT MIN MAX

Group II

Left to Right

* /

Group III

Left to Right

+ -

Group IV

Left to Right

Group V