您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > SAS 常用函数手册
新建文本文档SAS函数功能简介作者:huaxie来源:【整理】发布时间:2009-5-7浏览:669访问者:113.105.96.249摘要提示:SAS提供了比一般程序设计语言多几倍的标准函数可以直接用在数据步的计算中,其中包括所有语言都有的数学函数、字符串函数,还包括特有的统计分布函数、分位数函数、随机数函数、日期时间函数、财政金融函数,等等。本文将分别讲解以下内容:一、数学函数;二、数组函数;三、字符函数;四、日期和时间函数;五、分布密度函数、分布函数;六、分位数函数;七、随机数函数;八、样本统计函数SAS提供了比一般程序设计语言多几倍的标准函数可以直接用在数据步的计算中,其中包括所有语言都有的数学函数、字符串函数,还包括特有的统计分布函数、分位数函数、随机数函数、日期时间函数、财政金融函数,等等。这些函数的调用方法类似其它语言,比如求x1,x2,x3三个自变量的和可以用函数SUM(x1,x2,x3)。另外,SAS还提供了函数调用的另一种语法以便于把多个数据集变量作为函数自变量,其格式为“函数名(OF变量名列表)”,其中变量名列表可以是任何合法的变量名列表,比如x1,x2,x3的和等价地可以用SUM(OFx1x2x3)或SUM(OFx1-x3)表示。注意两种写法不能混在一起,比如SUM(OFx1,x2,x3)和SUM(x1-x3)都是错的。本小节对重要的函数加以介绍。一、数学函数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)结果第1页新建文本文档为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,函数自然对数LGAMMA,ORDINAL函数,AIRY函数,DAIRY函数,Bessel函数JBESSEL,修正的Bessel函数IBESSEL,等等。二、数组函数数组函数计算数组的维数、上下界,有利于写出可移植的程序。数组函数包括:DIM(x)求数组x第一维的元素的个数(注意当下界为1时元素个数与上界相同,否则元素个数不一定与上界相同)。DIMk(x)求数组x第k维的元素的个数。LBOUND(x)求数组x第一维的下界。HBOUND(x)求数组x第一维的上界。LBOUNDk(x)求数组x第k维的下界。HBOUNDk(x)求数组x第k维的上界。三、字符函数第2页新建文本文档较重要的字符函数有:TRIM(s)返回去掉字符串s的尾随空格的结果。UPCASE(s)把字符串s中所有小写字母转换为大写字母后的结果。LOWCASE(s)把字符串s中所有大写字母转换为小写字母后的结果。INDEX(s,s1)查找s1在s中出现的位置。找不到时返回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替换成字符串s2后的结果。其它字符函数还有COLLATE,COMPRESS,INDEXC,LEFT,LENGTH,REVERSE,RIGHT,SCAN,TRANSLATE,VERIFY,COMPBL,DEQUOTE,INDEXW,QUOTE,SOUNDEX,TRIMN,INDEXW。四、日期和时间函数常用日期和时间函数有:MDY(m,d,yr)生成yr年m月d日的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(interval,from,n)计算从from开始经过n个in间隔后的SAS日期。其中interval可以取YEAR、QTR、MONTH、WEEK、DAY等。比如,INTNX(MONTH,16Dec1997d,3)结果为1998年3月1日。注意它总是返回一个周期的开始值。INTCK(interval,from,to)计算从日期from到日期to中间经过的interval间隔的个数,其中interval取MONTH等。比如,INTCK(YEAR,第3页新建文本文档31Dec1996d,1Jan1998d)计算1996年12月31日到1998年1月1日经过的年间隔的个数,结果得2,尽管这两个日期之间实际只隔1年。其它日期和时间函数还有DATE、TODAY、DATETIME、DATEJUL、JULDATE、HOUR、MINUTE、SECOND、TIME、TIMEPART等。详见《SAS系统-BaseSAS软件使用手册》、《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,andWEIBULL。可以只写前四个字母。例如,PDF(NORMAL,1.96)计算标准正态分布在1.96处的密度值(0.05844),CDF(NORMAL,1.96)计算标准正态分布在1.96处的分布函数值(0.975)。PMF对连续型分布即PDF。除了用上述统一的格式调用外,SAS还单独提供了常用的分布的密度、分布函数。PROBNORM(x)标准正态分布函数PROBT(x,df,nc)自由度为df的t分布函数。可选参数nc为非中心参数。PROBCHI(x,df,nc)自由度为df的卡方分布函数。可选参数nc为非中第4页新建文本文档心参数。PROBF(x,ndf,ddf,nc)F(ndf,ddf)分布的分布函数。可选参数nc为非中心参数。PROBBNML(p,n,m)设随机变量Y服从二项分布B(n,p),此函数计算P(Ym)。POISSON((lambda,n)参数为lambda的Poisson分布Yn的概率。PROBNEGB(p,n,m)参数为(n,p)的负二项分布Ym的概率。PROBHYPR(N,K,n,x,r)超几何分布的分布函数。设N个产品中有K个不合格品,抽取n个样品,其中不合格品数小于等于x的概率为此函数值。可选参数r是不匀率,缺省为1,r代表抽到不合格品的概率是抽到合格品概率的多少倍。PROBBETA(x,a,b)参数为(a,b)的Beta分布的分布函数。PROBGAM(x,a)参数为a的Gamma分布的分布函数。PROBMC计算多组均值的多重比较检验的概率值和临界值。PROBBNRM(x,y,r)标准二元正态分布的分布函数,r为相关系数。六、分位数函数分位数函数是概率分布函数的反函数。其自变量在0到1之间取值。分位数函数计算的是分布的左侧分位数。SAS提供了六种常见连续型分布的分位数函数。PROBIT(p)标准正态分布左侧p分位数。结果在-5到5之间。TINV(p,df,nc)自由度为df的t分布的左侧p分位数。可选参数nc为非中心参数。CINV(p,df,nc)自由度为df的卡方分布的左侧p分位数。可选参数nc为非中心参数。FINV(p,ndf,ddf,nc)F(ndf,ddf)分布的左侧p分位数。可选参数nc为非中心参数。GAMINV(p,a)参数为a的伽马分布的左侧p分位数。BETAINV(p,a,b)参数为(a,b)的贝塔分布的左侧p分位数。七、随机数函数SAS可以用来进行随机模拟。它提供了常见分布的伪随机数生成函数。第5页新建文本文档1.均匀分布随机数有两个均匀分布随机数函数:UNIFORM(seed),seed必须是常数,为0,或5位、6位、7位的奇数。RANUNI(seed),seed为小于2**31-1的任意常数。在同一个数据步中对同一个随机数函数的多次调用将得到不同的结果,但不同数据步中从同一种子出发将得到相同的随机数序列。随机数种子如果取0或者负数则种子采用系统日期时间。2.正态分布随机数有两种,NORMAL(seed),seed为0,或5位、6位、7位的奇数。RANNOR(seed),seed为任意数值常数。3.指数分布随机数RANEXP(seed),seed为任意数值,产生参数为1的指数分布的随机数。参数为lambda的指数分布可以用RANEXP(seed)/lambda得到。另外若Y=alpha-beta*LOG(RANEXP(seed)),则Y为位置参数为alpha,尺度参数为beta的极值分布。若Y=FLOOR(-RANEXP(seed)/LOG(p)),那么Y是具有参数p的几何分布变量。4.伽马分布随机数RANGAM(seed,alpha),seed为任意数值常数,alpha0,得到参数为alpha的伽马分布。设X=RANGAM(seed,alpha),则Y=beta*X是形状参数为alpha,尺度参数为beta的GAMMA分布随机数。如果alpha是整数,则Y=2*X是自由度为2*alpha的卡方分布随机数。如果alpha是正整数,则Y=beta*X是Erlang分布随机数,为alpha个独立的均值为beta的指数分布变量的和。如果Y1=RANGAM(seed,alpha),Y2=RANGAM(seed,beta),在Y=Y1/(Y1+Y2)是参数为(alpha,beta)的贝塔分布随机数。5.三角分布随机数RANTRI(seed,h),seed为任意数值常数,0h1。此分布在0到1取值,密度在0到
本文标题:SAS 常用函数手册
链接地址:https://www.777doc.com/doc-314800 .html