-
sas
函数大全
一、数学函数
ABS(x)
求
x
的绝对值。
MAX(x1,x2,
…
,xn)
求所有自变量中的最大一个。
MIN(x1,x2,
…
,xn)
求所有自变量中的最小一个。
MOD(x,y)
求
x
除以
y
的余数。
SQRT(x)
求
x
的平方根。
ROUND(x,eps)
求
x
按照
eps
指定的精度四舍五入后的结果,
比如
ROUN
D(5654.5654,0.01)
结果为
5654.57
,
ROUND(5654.5654,10)
< br>结果为
5650
。
CEIL(x)
求大于等于
x
的最小整数。当
x
为整数时就是
x
本身,否则为
x
右边最近
的整数。
FLOOR(x)
求小
于等于
x
的最大整数。当
x
为整数时就是
x
本身,否则为
x
左边最近的整数。
INT(x)
求
x
< br>扔掉小数部分后的结果。
FUZZ(x)
当
x
与其四舍五入整数值相差小于
1E-12
时取四舍五入。
LOG(x)
求
x
< br>的自然对数。
LOG10(x)
< br>求
x
的常用对数。
EXP(x)
指数函数
。
SIN(x),
COS(x), TAN(x)
求
x
的正弦、余弦、正切函数。
ARSIN(y)
计算函数
y=sin(x)
在
区间的反函数,
y
取
[-1,1]
间值。
ARCOS(y)
计算函数
y=co
s(x)
在
的反函数,
y
取
[-1,1]
间值。<
/p>
ATAN(y)
计算函数
y=tan(x)
在
的反函数,
y
取
间值。
SINH(x),
COSH(x), TANH(x)
双曲正弦、余弦、正切
ERF(x)
误差函数
GAMMA(x)
完全
函数
此外还有符号函数
SIGN
,
函数一阶导
数函数
DIGAMMA
,二阶导数函数
TRIGAMMA
,误差函数余函
数
ERFC
,
函数自然对数
LGAMMA
,
ORDINAL
< br>函数,
AIRY
函数,
DAI
RY
函数,
Bessel
函数
JBESSEL
,
修正的
Bessel
函数
IBESSEL
,
等等。
二、数组函数
数组函数计算数组的
维数、上下界,有利于写出可移植的程序。数组函数包括:
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)
返回去掉字符串
s<
/p>
的尾随空格的结果。
UPCASE(s)
把字符串
s
p>
中所有小写字母转换为大写字母后的结果。
LOWCASE(s)
把字符串
s<
/p>
中所有大写字母转换为小写字母后的结果。
INDEX(s,s1)
查找
s1<
/p>
在
s
中出现的位置。找不到时返回
0
。
RANK(s)
字符
s
的
ASCII
码值。
BYTE(n)
第
n
个
ASCII
码值的对应字符。
REPEAT(s,n)
字符表达式
< br>s
重复
n
次。
< br>
SUBSTR(s,p,n)
从字符串
s
中的第
p
个字符开始抽
取
n
个字符长的子串
TRANWRD(s,s1,s2)
从字符串
s
中把所有字符串
s1
替换成
字符串
s2
后的结果。
其它字符函数还有
COLLATE
,
COMPRESS
,
INDEXC
< br>,
LEFT
,
LENGTH
p>
,
REVERSE
,
RIGHT
,
SCAN
,
TRANSLATE
,
VERIFY
,
COMPBL
,
DEQ
UOTE
,
INDEXW
,
QUOTE
,
SOUNDEX
,
TRIMN
,
INDEXW
p>
。
四、日期和时间函数
常用日期和时间函数有:
MDY(m,d,yr)
生成
yr<
/p>
年
m
月
d
日的
SAS
日期值
YEAR(date)
由
SAS
p>
日期值
date
得到年
MONTH(date)
由
SAS
日期值
date
得到月
DAY(date)
由
< br>SAS
日期值
date
得到日<
/p>
WEEKDAY(date)
由<
/p>
SAS
日期值
date
< br>得到星期几
QTR(date)
< br>由
SAS
日期值
date
得到季度值
HMS(h,m,s)
p>
由小时
h
、分钟
m
、秒
s
生成
S
AS
时间值
DHMS(d,h,m,s)
由
SA
S
日期值
d
、小时
h
、分钟
m
、秒
< br>s
生成
SAS
日期时间值
DATEPART(dt)
求
SAS
日期时间值
dt
的日期部分
INTNX(interval,from,n)
计算从
p>
from
开始经过
n
个
in
间隔后的
SAS
日期。其中
interval
可以取
'YEAR'
、
'QTR'
、
'MONTH'
、
'WEEK'
p>
、
'DAY'
等。比如,
< br>INTNX('MONTH', '16Dec1997'd, 3)
结果
为
1998
年
3
p>
月
1
日。注意它总是返回一个周期的开始值
。
INTCK(interval,from,to)
计算从日
期
from
到日期
to
中间经过的
interval
间隔的个数,其中
interval
取
'MONTH'
等。比如,
INTCK('YEAR', '31Dec1996'd,
'1Jan1998'd)
计算
1996
年
12
月
31
日到
1998
年
1
月
1
日经过的年间隔的个数,结果得
< br>2
,尽管这两个日期之间实际只隔
1
年。
其它日期和时间函数还
有
DATE
、
TODAY
、
DATETIME
、
DA
TEJUL
、
JULDATE
、
HOUR
、
MINUTE
、
SECOND
、
TIME
p>
、
TIMEPART
等。详见《
SAS
系统-
Base
SAS
软件使用手册》、《
SAS
系统
-
SAS/ETS
软件使用
手册》。<
/p>
五、分布密度函数、分布函数
作为
一个统计计算语言,
SAS
提供了多种概率分布的有关函数。分
布密度、概率、累积分布
函数等可以通过几种统一的格式调用,格式为
< br>
分布函数值
= CDF('
分布
', x <,
参数表
>);
密度值
= PDF('
分布
', x <,
参数表
>);
概率值
= PMF('
分布
', x <,
参数表
>);
对数密度值
= LOGPDF('
分布
', x <,
参数表
>);
对数概率值
= LOGPMF('
分布
', x <,
参数表
>);
CDF
计算由
'
分布
'
指定的分布的分布函数,
PDF
计算分布密度函
数值,
PMF
计算离散分布的
分布概率
,
LOGPDF
为
PDF
的自然对数,
LOGPMF
为
PMF
的自然对数。函数在自变量
x
处计算,
<,
参
< br>数表
>
表示可选的参数表。
分布类型取值可以为
: BERNOULLI, BETA,
BINOMIAL, CAUCHY, CHISQUARED, EXPONENTIAL,
F,
GAMMA,
GEOMETRIC,
HYPERGEOMETRIC,
LAPLACE,
LOGISTIC,
LOGNORMAL,
NEGBINOMIAL,
NORMAL
或
GAUSSIAN, PARETO, POISSON, T, UNIFORM, WALD
或
IGAUSS, and WEIBULL
。可以只写前四
个字母。
例如,
PDF('NORMAL',
1.96)
计算标准正态分布在
1.96
处的密度值
(
0.05844
)
p>
,
CDF('NORMAL',
1.96
)
计算标准正态分布在
1.96
处的分
布函数值(
0.975
)。
PMF
p>
对连续型分布即
PDF
。
< br>
除了用上述统一的格式调用外,
SAS
还单独提供了常用的分布的密度、分布函数。
PROBNORM(x)
标准正态分布函数