SAS(六)SAS运算符、字符比较及运算次序

SAS(六)SAS运算符、字符比较及运算次序

运算符

  • 算术运算符:

+ - *     /      **/*乘方*/

  • 比较算符:

=(EQ)    ^=(NE)    >(GT)     <(LT)      >=(GE)     <=(LE)       in/*变量的值在某一个范围*/

  • 逻辑算符:

&(AND)   |(!)(OR) ^(~)(Not)

  • 其它:

><(最小值)     < >(最大值)       ||(!)(连接)
 

字符比较

  • 1、按机器使用的字符排列次序(ASCⅡUnicode)从左到右被比较。
  • 2、两个不等长的字符串被比较时,系统在较短的字符串后自动添上空格
  • 3、在比较符后加冒号,则只比较首字母
data opreate;                                                                                                                           
input (a b c) ($);                                                                                                                      
                                                                                                                                        
if a>b then result1='true ';                                                                                                            
else result1='false';                                                                                                                   
                                                                                                                                        
result2='Fox'<>'Fox ';/*result2变量的长度                                                                                               
由最长的字符串决定*/                                                                                                                    
                                                                                                                                        
result3='Fox'<>' Foxs';                                                                                                                 
                                                                                                                                        
if a>:'S' then result4="Great than S";                                                                                                  
                                                                                                                                        
cards;                                                                                                                                  
GRAY ADAMS  G                                                                                                                           
TOM TOMA T                                                                                                                              
Sam Robe S                                                                                                                              
sa SA g s                                                                                                                               
{ | a                                                                                                                                   
Щ Ш b                                                                                                                                 
↓ ↑ c                                                                                                                                 
;                                                                                                                                       
run;                                                                                                                                    
proc print data=opreate;                                                                                                                
run;

结果 

运算次序

  • 在括弧里的表达式先计算
  • 第一级:**  (+ -)前缀 ^ ><   < >
  • 第二级:*  /
  • 第三级:+ -
  • 第四级||
  • 第五级:其余比较算符
  • 第六级:&
  • 第七级:| 
对于相同优先级的算符,左边的运算先做。但有两个例外:
1. 对最高优先级,右边的运算先做
2. 当两个比较算符围着一个量时,这个表达式看成是有一个 and 出现一样被计算。
如:
12 age< 20
等价于:
12 age & age<20

 

猜你喜欢

转载自blog.csdn.net/LuYi_WeiLin/article/details/103237800