SAS编程基础(二)
2011-10-09 21:21阅读:
2.4
表达式
表达式由一系列操作符和操作对象构成,产生一个目标值。使用表达式可以对变量作变换和赋值,创建新变量,计算新数值以及控制条件语句的运行等。
操作对象有:
·变量;
·常数。
操作符包括:
·算术算符;
·比较算符;
·逻辑算符;
·SAS函数;
·括号。
例2.7
表达式里允许有空格。
Y=X+10;
Y=
X + 10;
2.4.1
SAS
常数
SAS常数是SAS系统可以识别的一些固定值。
SAS常数值包括:
·数字;
·引号括起来的字符串;
·其他特殊记号。
SAS常数的5种类型:
·数值常数;
·字符常数;
·日期时间数值常数;
·十六进制数值常数;
·十六进制字符常数。
这两个十六迸制应该归属于前面的数值和字符常数。
1.
数值常数
数值常数就是出现在SAS语句里的数字。
例2.8
数值常数。
1,-5,1.23,1.2E23,2E4,20000
数值常数可以有多种格式表示。
数值常数的表示格式包括:
standard
notation标准格式;
scientific(E)
notation科学计数法;
hexadecimal
notation十六进制格式;
标准格式:1,01,+1,-1,1.1;
科学计数法:1.1e11,1.2e-12;
十六进制格式:lcx,12x,9x。
2.
字符常数
字符常数通常由用单引号括起来的1-32767个字符组成。如果字符常数内含有引号。引用时,要么它的引号用两个连续的单引号,要么用一个双引号。
例2.9
引用带引号的字符常数。
name=’TOMS’;
name='TOM’S”;
注意:字符常数是由引号括起来的,但是字符变量的名称则没有引号,也就是说字符常数不能作为字符变量的名称。
注意,SAS比较引号括起来的字符时是区分大小写的。如’ ABC’和'abc’不同。十六进制字符常数可以表示为'543'x,x紧跟在引号部分后面。
3.
日期时间常数
将日期时间值表示为常数时,要使用相应的格式值。格式值带单引号,后面跟一个D(日期)、T(时间)或DT(日期时间)。
例2.10
引用日期时间常数。
'1jan2000'd;
‘01jan00'd;
'9:25't;
'18jan00:9:27:25'dt
if begin='01JAN2000'd then end=
'31DEC2000'd;
2. 4. 2
SAS算符
SAS算符是一些符号,其作用是进行计算、比较等。
1.
算术算符
算术算符表示执行一种算术运算,如表2.2所示。
表2.2
算术算符
算符
|
含义
|
举例
|
**
|
乘方
|
A**2.5=A2.5
|
*
|
乘
|
A*B*3
|
/
|
除
|
X/A
|
+
|
加
|
|
-
|
减
|
|
表达式中有一个运算对象是缺失值时,结果也是缺失值。
data;
X=3.5** 2.5;
put X=;
Y= 9+1/3;
put Y=;
X=.;
Y=1+X;
put Y=;
run;
输出结果为:
X=22.917651494
Y=9.3333333333
Y=.
2.
比较算符
比较算符建立两个量之间的一种关系
如表2.3所示。
表2.3
比较算符
算符
|
等价形式
|
含义
|
举例
|
=
|
eq
|
等于
|
X=Y
|
^=
|
ne
|
不等于
|
X^=Y
|
>
|
gt
|
大于
|
X>Y
|
<
|
lt
|
小于
|
X<
Y
|
>=
|
ge
|
大于等于
|
X>=Y
|
<=
|
le
|
小于等于
|
X<=Y
|
in
|
|
等于列表中的一个
|
NAME
IN(WANG,LI)
|
比较准则:
·数值和字符都可以比;
·结果为真,赋值1,假赋值0;
·字符值从左到右逐个按ASCII码排列序列进行比较;
·缺失值参加比较时,它比任何有效值都小。
例2.12
比较算符应用。
if x< y then
c=5;
else c=12;
比较算符经常出现在IF语句里。
3.
逻辑算符
逻辑