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

孤街醉人 提交于 2019-11-25 19:06:04

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 出现一样被计算。
如:
12age< 20
等价于:
12age & age<20

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!