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指定的精度四舍五入后的结果,比如
ROUND(5654.5654,0.01)结果为 5654.57, ROUND(5654.5654,10)结果为 5650
CEIL(x)求大于等于x的最小整数。当x为整数时就是x本身,否则为x右边最近 的整数。
FLOOR(x)求小于等于x的最大整数。当x为整数时就是x本身,否则为x左边最 近的整数。
INT(x) 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)在的反函数,y[-1,1 ]间值。
ATAN(y)计算函数y=tan(x)在的反函数,y取间值。
SINH(x), COSH(x), TANH(x) 双曲正弦、余弦、正切
ERF(x) 误差函数
GAMMA(x) 完全 函数
此外还有符号函数SIGN,函数一阶导数函数 DIGAMMA,二阶导数函数
TRIGAMMA,误差函数余函数 ERFC,函数自然对数 LGAMMAORDINAL函 数,AIRY函数,DAIRY函数,Bessel函数JBESSEL,修正的Bessel函数 IBESSEL,等等。
二、数组函数
数组函数计算数组的维数、上下界,有利于写出可移植的程序。数组函数包括:
DIM(x)求数组x第一维的元素的个数(注意当下界为 1时元素个数与上界相同, 否则元素个数不一定与上界相同)。
DIM k(x)求数组xk维的元素的个数。
LBOUND(x) 求数组 x 第一维的下界。
HBOUND(x) 求数组 x 第一维的上界。
LBOUND k(x)求数组xk维的下界。
HBOUND k(x) 求数组 x k 维的上界。
三、字符函数
较重要的字符函数有:
TRIM(s) 返回去掉字符串 s 的尾随空格的结果。
UPCASE(s)把字符串s中所有小写字母转换为大写字母后的结果。
LOWCASE(s)把字符串s中所有大写字母转换为小写字母后的结果。
INDEX(s,s1)sis中出现的位置。不到时返回 0
RANK(s)字符sASCII码值。
BYTE(n)nASCII码值的对应字符。
REPEAT(s,n)字符表达式s重复n次。
SUBSTR(s,p,n)从字符串s中的第p个字符开始抽取n个字符长的子串 TRANWRD(s,s1,s2)从字符串s中把所有字符串s1替换成字符串s2后的结果。 其它字符函数还有 COLLATE COMPRESSINDEXCLEFTLENGTHREVERSERIGHTSCAN TRANSLATE VERIFY COMPBLDEQUOTEINDEXW QUOTESOUNDEXTRIMN INDEXW
四、日期和时间函数
常用日期和时间函数有:
MDY(m,d,yr)生成yrmd日的SAS日期值
YEAR(date)SAS日期值date得到年
MONTH(date)SAS日期值date得到月
DAY(date)SAS日期值date得到日
WEEKDAY(date)SAS日期值date得到星期几
QTR(date)SAS日期值date得到季度值
HMS(h,m,s)由小时h、分钟m、秒s生成SAS时间值
DHMS(d,h,m,s)SAS日期值d、小时h、分钟m、秒s生成SAS日期时间值
DATEPART(dt)SAS日期时间值dt的日期部分
INTNX(intervalfrom,n)计算从from开始经过nin间隔后的SAS日期。其中 interval 可以取'YEAR'’QTR'’MONTH''WEEK'’DAY'等。比如, INTNX('MONTH', '16Dec1997'd, 3) 结果为 199831 日。注意它总是返回一个 周期的开始值。
INTCK(interval,from,to) 计算从日期 from 到日期 to 中间经过的 interval 间隔的个数, 其中 interval 'MONTH'等。比如,INTCK('YEAR', '31Dec1996'd, '1Jan1998'd)计算 199612 31 日到 19981 1 日经过的年间隔的个数,结果得 2,尽管这两 个日期之间实际只隔 1 年。
其它日期和时间函数还有 DATETODAY DATETIME DATEJUL JULDATE HO
URMINUTESECONDTIMETIMEPART 等。详见《SAS系统—Base SAS软件使用手册》、《SAS系统—SAS/ETS软件使用手册》。
五、分布密度函数、分布函数 作为一个统计计算语言, SAS 提供了多种概率分布的有关函数。分布密度、概率、 累积分布函数等可以通过几种统一的格式调用,格式为
分布函数值 = CDF(' 分布', x <, 参数表>);
密度值 = PDF(' 分布', x <, 参数表>);
概率值 = PMF(' 分布', x <, 参数表>);
对数密度值 = LOGPDF(' 分布', x <, 参数表>);
对数概率值 = LOGPMF(' 分布', x <, 参数表>);
CDF计算由'分布'指定的分布的分布函数,PDF计算分布密度函数值,PMF计算离 散分布的分布概率, LOGPDF PDF 的自然对数, LOGPMF PMF 的自然对数。 函数在自变量x处计算,<,参数表表示可选的参数表。
分布类型取值可以为 : 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), CDF('NORMAL', 1.96) 计算标准正态分布在 1.96处的分布函数值( 0.975)。 PMF 对连续型分布即 PDF
除了用上述统一的格式调用外, SAS 还单独提供了常用的分布的密度、分布函数。
PROBNORM(x) 标准正态分布函数
PROBT(x,dfv,nc>)自由度为dft分布函数。可选参数nc为非中心参数。 PROBCHI(x,dfv,nc>)自由度为df的卡方分布函数。可选参数 nc为非中心参数。 PROBF(x, ndf,ddfv, nc>) F( ndf,ddf)分布的分布函数。可选参数 nc为非中心参数。 PROBBNML(p,n,m)设随机变量Y服从二项分布B(n,p),此函数计算P(Y m)
POISSON((lambda,n)参数为 lambda Poisson分布 Y n 的概率。
PROBNEGB(p,n,m)参数为(n,p)的负二项分布 Y m的概率。
PROBHYPR(N,K,n,x<,r>) 超几何分布的分布函数。设 N 个产品中有 K 个不合格品, 抽取n个样品,其中不合格品数小于等于 x的概率为此函数值。可选参数r是不匀 率,缺省为1 , r代表抽到不合格品的概率是抽到合格品概率的多少倍。
PROBBETA(x,a,b)参数为(a,b)Beta分布的分布函数。
PROBGAM(x,a)参数为aGamma分布的分布函数。
PROBMC 计算多组均值的多重比较检验的概率值和临界值。 PROBBNRM(x,y,r)标准二元正态分布的分布函数,r为相关系数。
六、分位数函数 分位数函数是概率分布函数的反函数。其自变量在 01之间取值。分位数函数计 算的是分布的左侧分位数。 SAS 提供了六种常见连续型分布的分位数函数。
PROBIT(p)标准正态分布左侧p分位数。结果在—55之间。
TINV(p, df v,nc>)自由度为dft分布的左侧p分位数。可选参数nc为非中心参 数。
CINV(p,dfv,nc>)自由度为df的卡方分布的左侧p分位数。可选参数nc为非中心参 数。
FINV(p,ndf,ddfv,nc>) F(ndf,ddf)分布的左侧p分位数。可选参数nc为非中心参数。 GAMINV(p,a)参数为a的伽马分布的左侧p分位数。
BETAINV(pab)参数为(a,b)的贝塔分布的左侧p分位数。
七、随机数函数
SAS可以用来进行随机模拟。它提供了常见分布的伪随机数生成函数。
1.均匀分布随机数
有两个均匀分布随机数函数:UNIFORM(seed)seed必须是常数,为0,或5位、 6位、7位的奇数。RANUNI(seed)seed为小于2**31-1的任意常数。在同一个数 据步中对同一个随机数函数的多次调用将得到不同的结果,但不同数据步中从同一 种子出发将得到相同的随机数序列。随机数种子如果取 0或者负数则种子采用系统 日期时间。
2round函数有几个参数.正态分布随机数
有两种,NORMAL(seed)seed0,或 5 位、6 位、7 位的奇数。RANNOR(seed)seed为任意数值常数。
3.指数分布随机数
RANEXP(seed)seed为任意数值,产生参数为1的指数分布的随机数。参数为 lambda的指数分布可以用RANEXP(seed)/lambda得到。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。