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
如: 12 < age< 20 ,
等价于: 12 < age & age<20