SAS中的運算符是在數學,邏輯或比較表達式中使用的符號。這些符號內置到SAS語言中,並且許多運算符可以組合在單個表達式中以給出最終輸出。
以下是SAS運算符類別的列表。
算術運算符
邏輯運算符
比較運算符
最小/最大運算符
連接運算符
我們逐一觀察。運算符總是與作為由SAS程序分析的數據的一部分的變量一起使用。
算術運算符下表介紹了算術運算符的詳細信息。讓我們假設分別具有值8和4的兩個數據變量V1和V2。
操作者描述例+加成V1 + V2 = 12-減法V1-V2 = 4*乘法V1 V2 * 32 =/師V1 / V2 = 2**冪V1 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.33.11 11;PROC PRINT DATA=MYDATA1;RUN;在運行上面的代碼,我們可以得到下面的輸出。
邏輯運算符下表描述了邏輯運算符的詳細信息。這些運算符計算表達式的Truth值。因此,邏輯運算符的結果總是1或0.我們假設兩個數據變量V1和V2分別具有值8和4。
操作者描述例&AND運算符。如果兩個數據值都為真,則結果為1,否則為0。(V1> 2 V2> 3)給出了0。|OR運算符。如果任何一個數據值求值為真,則結果為1,否則為0。(V1> 9 V2> 3)為1。〜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.33.11 11.4;PROC PRINT DATA=MYDATA1;RUN;在運行上面的代碼,我們可以得到下面的輸出。
比較運算符
下表描述了比較運算符的詳細信息。這些運算符比較變量的值,結果是真值,1表示TRUE,0表示False。讓我們假設分別具有值8和4的兩個數據變量V1和V2。
操作者描述例=EQUAL運算符。如果兩個數據值相等,則結果為1,否則為0。(V1 = 8)給出1。^ =NOT EQUAL運算符。如果兩個數據值不相等,則結果為1,否則為0。(V1 ^ = V2)給出1。<LESS THAN運算符。(V2 <V2)提供1。<=小於或等於運算符。(V2 <= 4)給出1。>大於運算符。(V2> V1)給出1。> =大於或等於運算符。(V2> = V1)給出0。在IN運算符。如果變量的值等於給定值列表中的任何一個值,則返回1 else否則返回0。V1在(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.33.11 11.4;PROC PRINT DATA=MYDATA1;RUN;在運行上面的代碼,我們可以得到下面的輸出。
最小/最大運算符
下表描述了最小/最大運算符的詳細信息。這些運算符比較一行中變量的值,並返回行中的值列表中的最小值或最大值。
操作者描述例MINMIN運算符。它從行中的值列表返回最小值。MIN(45.2,11.6,15.41)給出了11.6MAXMAX操作符。它從行中的值列表返回最大值。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.0123.11 11.4 18.512;PROC PRINT DATA=MYDATA1;RUN;在運行上面的代碼,我們可以得到下面的輸出。
連接運算符
下表描述了Concatenation運算符的詳細信息。此運算符連接兩個或多個字符串值。返回單個字符值。
操作者描述例||連接運算符。它返回兩個或多個值的連接。'Hello'||'World' 輸出 Hello World例DATA MYDATA1;input COL1 $ COL2 $ COL3 $; concat_ = (COL1 || COL2 || COL3);datalines;Tutorial s pointsimple easy learning;PROC PRINT DATA=MYDATA1;RUN;在運行上面的代碼,我們可以得到下面的輸出。
運算符優先級
運算符優先級表示複雜表達式中存在的多個運算符的求值順序。下表描述了一組運算符中的優先順序。
組順序符號第一組右到左** + - NOT MIN MAX第二組左到右* /第三組左到右+ -第四組左到右||第五組左到右<<= => =>