-
Sas
常用函数
(
转<
/p>
)
一、数学函数
ABS(x)
求
< br>x
的绝对值。
MAX(x1,x2,…,xn)
求所有自变量中的最大一个。
MIN(x1,x2,…,xn)
求所有自变量中的最小一个。
MOD(x,y)
求
x
除以
y
的余数。
SQRT(x)
求
x
的平方根。
ROUND(x,eps)
求
x
p>
按照
eps
指定的精度四舍五入后的结果,
比如
ROUND(5654.5654,0.01)
结
果为
5654.57
,
ROUND(5654.5654,10)
结果为
5650
。
CEIL(x)
求大于等于
x
的最小整数。当
x
为整数时就是
x
本身,否则为
x
右边最近
的整数。
FLOOR(x) <
/p>
求小于等于
x
的最大整数。当
x
为整数时就是
x
本身,
否则为
x
左边最近的整数。
INT(x)
求
< br>x
扔掉小数部分后的结果。
FUZZ(x)
当
x
与其四舍五入整数值相差小于
1E-12
时取四舍五入
。
LOG(x)
求
x
的自然对数。
LOG10(x)
求
x
的常用对数。
EXP(x)
指数函数。
SIN(x), COS(x), TAN(x)
求
x
的正弦、余弦、正切函数。
ARSIN(y)
计
算函数
y=sin(x)
在区间的反函数,
y
取
[-1,1]
间值。
ARCOS(y)
计算函数
y=cos(x)
在的反函数,
< br>y
取
[-1,1]
间值。
ATAN(y)
计算函数
y=tan(x)
在的反函数,
< br>y
取间值。
SINH(x), COSH(x), TANH(x)
双曲正弦、余弦、正切
ERF(x)
误差函数
GAMMA(x)
完全函数
此外还有符号函数
SIGN
,函数一阶导数函数
DIGAMMA
,二阶导数函数
TRIGAMMA
,误差函
数余函数
ERFC
,
函数自然对数
LGAMMA
,
ORDINAL
函数,
AIRY
函数,
DAIRY
函数,
Bessel
函数
JBESSEL
< br>,修正的
Bessel
函数
IB
ESSEL
,等等。
二、数组函数
< br>数组函数计算数组的维数、上下界,有利于写出可移植的程序。数组函数包括:
DIM(x)
求数组
x
第一维的元素的个数(注意当下界为
1
时元素个数与上界相同,否则元素个数
不一定与上界相同)。
DIM k(x)
求数组
x
第
k
维的元素的个数。
LBOUND(x)
求数组
x
第一维的下界。
HBOUND(x)
求数组
x
第一维的上界。
LBOUND k(x)
求数组
x
第
k
维的下界。
HBOUND k(x)
求数组
x
第
k
维的上界。
三、字符函数
较重要的字符函数有:
TRIM(s)
返回去掉字符串<
/p>
s
的尾随空格的结果。
UPCASE(s)
把字符串
p>
s
中所有小写字母转换为大写字母后的结果。
LOWCASE(s)
把字
符串
s
中所有大写字母转换为小写字母后的结果。
INDEX(s,s1)
< br>查找
s1
在
s
< br>中出现的位置。找不到时返回
0
。
RANK(s)
字符
s
的
ASCII
码值
。
BYTE(n)
第
n
个
ASCII
码值的对应字符。
REPEAT(s,n)
字符表达式
s
重复
n
次。
SUBSTR(s,p,n)
从字
符串
s
中的第
p
个字符开始抽取
n
个字符长的子串
TRANWRD(s,s1,s2)
从字符串
s
中把所有字符串
s1
p>
替换成字符串
s2
后的结果。
其它字符函数还有
COLLATE
,
COMPRESS<
/p>
,
INDEXC
,
LEFT
,
LENGTH
,
REVERSE
,
RIGHT
< br>,
SCAN
,
TRANSLA
TE
,
VERIFY
,
COMPBL
,
DEQUOTE
,
INDEXW
,
QUOTE
,
SOUNDEX
,
TRIMN
,
INDEXW
。
四、日期和时间函数
常用日期和时间函数有:
MDY(m,d,yr)
生成
yr<
/p>
年
m
月
d
日的
SAS
日期值
Statements
mn=8;
dy=27; yr=12;
birthday= mdy(mn,dy,yr);
put birthday;
Results
08/27/2012
mn=7; dy=11; yr=12;
anniversary= mdy(mn,dy,yr);
put anniversary;
11JUL2012
YEAR(date)
由
SAS
日期值
date
得到年
MONTH(date)
由
SAS
日期值
date
得到月
DAY(date)
由
SAS
日期值
date
得到日
WEEKDAY(date)
由
SAS
日期值
date
得到星期几
QTR(date)
由
SAS
日期值
date
得到季度值
< br>
HMS(h,m,s)
由小时
h
、分钟
m
、秒
s
生成
SAS
时间值
DHMS(d,h,m,s)
由
SA
S
日期值
d
、小时
h
、分钟
m
、秒
< br>s
生成
SAS
日期时间值
DATEPART(dt)
求
SAS
日期时间值
d
t
的日期部分
INTNX(interval,from,n)
计算从
p>
from
开始经过
n
个
in
间隔后的
SAS
日期。
其中
interval
可以取
'YEAR'
、
'QTR'
、
'MONTH'
、
< br>'WEEK'
、
'DAY'
等。
比如,
INTNX('MONTH', '16Dec1997'd, 3)
结果
为
1998
年
3
月
1
日。注意它总
是返回一个周期的开始值。
INTCK(interval,from,to)
计算从日
期
from
到日期
to
中间经过的
interval
间隔的个数,
其中
interval
取
'MONTH'
等。比如,
INTCK('YEAR',
'31Dec1996'd, '1Jan1998'd)
计算
1996
年
12
月
< br>31
日到
1998
年
1
月
1
日经过的年间隔的
个数,结果得
2
,尽管这两个日期之间实际只隔
1
年。
其它日期和时间函数还有
DATE
、
< br>TODAY
、
DATETIM
E
、
DATEJUL
、
JULDATE
、
HOUR
、
-
-
-
-
-
-
-
-
-
上一篇:log-rank时序检验
下一篇:log函数性质