2SAS基础表达式及函数简介课件.ppt

上传人(卖家):晟晟文业 文档编号:5210805 上传时间:2023-02-17 格式:PPT 页数:39 大小:177.50KB
下载 相关 举报
2SAS基础表达式及函数简介课件.ppt_第1页
第1页 / 共39页
2SAS基础表达式及函数简介课件.ppt_第2页
第2页 / 共39页
2SAS基础表达式及函数简介课件.ppt_第3页
第3页 / 共39页
2SAS基础表达式及函数简介课件.ppt_第4页
第4页 / 共39页
2SAS基础表达式及函数简介课件.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、SAS表达式表达式及函数简介及函数简介 SAS表达式表达式 SAS表达式是由一系列算符和运算对象形成的一个指令集,它被执行后产生一个目标值。运算对象运算对象是SAS变量变量和SAS常数常数;算符是特殊的运算符、函数和括号。表达式分为简单表达式和复合表达式。下列式子都是表达式。X+1 3 LOG(X)LOG10(X)P/A*100 AGE100 1-EXP(N/(N-1)A=B=C STATE=CA 在在DATA步中,为了对变量进行变换,建立新变量、条件处理、计步中,为了对变量进行变换,建立新变量、条件处理、计算新值及指定新值,都需要使用算新值及指定新值,都需要使用SAS表达式。表达式。一、一、

2、SAS常数常数 SAS常数用来表示固定的值,它或者是一个数字,或者是用引号引起来的字符串、或者是其它特殊记号。SAS使用的常数有五种类型:数值常量、字符常量、日期、时间和日期时间常量、十六进制数值常量、十六进制字符常量。我们主要介绍数值常量、字符常量和日期常量。1.1.数值常量:数值常量:一个数值常量就是出现在SAS语句里的数字。数值常量可以包括小数点,负号和E记号。例如:1 -5 1.23 1.2E23 0.1 0.5E-10。用E表示法时,如2E4,它表示 ,或者20000。SAS系统中,数值缺失值缺失值用小数点来(.)表示。41022.2.字符常量字符常量 字符常量是由(单)引号括起来的

3、字符串.例如,在下面的语句中:IF name=TOM THEN DO;TOM就是一个字符常量。如果字符常量含有引号,则用两个连续的单引号来处理。例如,字符值为TOMS时,输入:name=TOMS 缺失的字符常量值缺失的字符常量值为空字符,空字符,表示为或或”(两个连续的单引号或双引号)。注意,下面语句中 TOM不是字符常量,而是按变量处理!IF name=TOM THEN Score=85;3.3.日期、时间常量:日期、时间常量:日期日期 时间时间常量是将日期时间由(单)引号括起来,后面加上d或t或dt而形成的。例如:日期常量日期常量:15may2008d 时间常量时间常量:16:45:01t

4、 日期时间常量日期时间常量:15may2008:16:45:01dt注意:日期格式为:DDMMMYY 或 DDMMMYYYY即,月份月份需要用三个英文字母表示二 SAS变量:描述给定特征的数值集合的指标称为变量。SASSAS变量的特征变量的特征:变量名、类型、变量名、类型、存储长度、标签、输入格式、输出格式存储长度、标签、输入格式、输出格式存储长度存储长度指变量在存储时所需要的字节数。默认情况下所有的变量都定义为8字节。字符变量的长度可为1-32768字节,数值变量的长度可为3-8字节。标签标签是对变量的补充说明,可以为任意字符,长度可多达256个字符。SAS数据集数据集(部分部分)Obser

5、vationsVariablesValue输入输出格式输入输出格式原始数据值原始数据值SAS变量的值变量的值格式化的格式化的SAS变量值变量值Dollar10.Comma8.548,23125JAN20041609501/25/2004Date9.MMDDYY10.$548,231548231Informat(输入格式)(输入格式)Format(输出格式)(输出格式)日期和时间数据的存储日期和时间数据的存储SAS采用数值数值存储日期和时间形式的数据。在默认情况下,SAS系统以0代表1960年1月1日0时。其它日期在SAS系统中被存储为与该日期相差的天数。例如,1960年1月3日,在系统中存为2

6、。2004年1月25日,在系统中存为16095。注意:为了使数值型变量显示日期形式,必须使用日期型的输出格式,同样地为了以日期形式输入日期必须使用日期型的输入格式。SAS变量分为两类,数值变量数值变量(Num)与字符变量字符变量(Char)。数值型变量只能取数值为值。可以有正负号及小数点(+、),但不能有逗号(,)。数值型是SAS的默认变量类型,默认长度为8位。字符型变量字符型变量可以取字符、字母、特殊字符以及数字为值。在DATA步中某些SAS语句中,第一次出现的变量名后跟一个美元符号($),即表明该变量是字符型变量,如name$或name$。如果变量后不加$符号,SAS将该变量认为数值型。在

7、SAS中一个字符变量的取值可以有1-32768个字符长,默认长度为8个字符长;或由第一次赋值时字符长度决定。创建变量创建变量 使用赋值语句使用赋值语句 Data a;x=1;run;/*数据集a中有个变量x,值为1,为数值型*/使用使用INPUT语句语句 Data b;Input x$y z;Datalines;Aaa 23 45 ;Run;/*创建三个变量,x为字符型,y、z为数值型*/变量类型转换变量类型转换 字符自动转换为数值(无法转换为数值时,取缺失值)字符自动转换为数值(无法转换为数值时,取缺失值)data;X=1;/*X为数值变量*/Y=10;/*Y为字符变量*/X=Y;/*将字符

8、变量赋值给一个数值变量时,自动将字符变量Y转换为数值变量*/run;data;X=1;/*X为数值变量*/Y=10;/*Y为字符变量*/Z=X+Y;/*算术表达式中有字符变量时,自动将字符变量Y 转换为数值变量*/run;函数函数INPUT将字符转换为数值将字符转换为数值 INPUT函数的形式:INPUT(数据源,输入格式);其中:数据源为要转换为数值的变量,常数或表达式。数据源既可以是数值型,也可以是字符型。输入格式规定对数据源进行转换的输入格式。datadata a;y=input(12345,5.25.2);runrun;数值自动转换为字符数值自动转换为字符 data;X=abcd;/*

9、X为字符变量*/Y=123;/*Y为数值变量*/X=Y;/*自动将数值变量Y转换为字符变量*/run;注意:注意:将数值变量赋给字符变量时,结果会受到字符变量长度的影响!长度不足时,SAS尽量转换成能够满足长度限制的结果,即科学记数法。数值转字符之后的格式:数值转字符之后的格式:data;Y=10;/*Y为数值变量*/Z=ROOM|Y;/*自动将数值变量Y转换为字符变量*/put Z=;run;data;Y=10600001;/*Y为数值变量*/Z=SUBSTR(Y,7,6);/*自动将数值变量Y转换为字符变量*/put Z=;run;Z=ROOM 10Z=600001系统自动地将数值转换为字

10、符时,使用系统自动地将数值转换为字符时,使用BEST12.的输出格式,字的输出格式,字符值右对齐,不足符值右对齐,不足12位时左侧以空格补齐。位时左侧以空格补齐。函数函数PUT将数值转换为字符将数值转换为字符 PUT函数的形式:PUT(数据源,输出格式);其中:数据源为要转换为字符值的变量,常数或表达式。数据源既可以是数值型,也可以是字符型。输出格式规定对数据源进行转换的输出格式。datadata a;x=put(34.41634.416,5.25.2);y=input(12345,5.25.2);runrun;data;X=1;/*X为数值变量*/Y=10;/*Y为字符变量*/if XY t

11、hen k=1;/*字符与数值变量进行比较时,自动将字符变量Y转换为数值变量*/run;data;Y=10;/*Y为字符变量*/Z=log(Y);/*需要数值变量的函数中引用字符变量时,自动将字符变量Y转换为数值变量*/run;自动变量自动变量 自动变量是由数据步语句自动创建的。这些自动变量被加入到程序数据向量(PDV)中,但是并不输出到数据集中。自动变量在重复过程中被保留,而不是被设定为缺失。如,_n_ _error_ first.byvar last.byvar _numeric_ _all_ 等例:使用自动变量例:使用自动变量_Numeric_。data one;set sashelp.

12、class;keep _numeric_;/*只保留数据集中的数值变量*/run;三 SAS算符 SAS算符是一些符号,它们要求作比较、算术运算或逻辑运算。SAS使用两种主要类型的算符:前缀算符和中缀算符v 前缀算前缀算符用于变量、常数、函数或者用括号括起来的表达式。例如:+Y -25 -COS(A)-(x1+x2-100)前缀算符有:加号,减号,NOT和符号符号。v 中缀算中缀算符作用在算符两边的运算对象上,例如6(GT)大于 =(GE)大于等于 =(LE)小于等于(1)算术表达式的比较 考虑表达式:A=B。如果A的值为4,B的值为3,则表达式A=B的值为0(假);若A的值为5,B的值为9,

13、则表达式AADAMS是真的,它与表达式 ANDRE,CANDRE,CLYDE一样,它们的值都是1。3.3.逻辑算符逻辑算符:逻辑算符也称为布尔(Boolean)算符,在表达式里通常用来连接一系列比较式。逻辑算符包括:&(AND)与;|(OR)或;(NOT)非 例如,age=25 AND sex=男 或 age=25&sex=男 age=25 OR sex=男4.4.运算次序运算次序:关于运算次序,SAS有如下的三个准则:准则1:在括号里的表达式先计算;准则2:较高优先级的运算先被执行。下面是各运算符的优先等级(排在前面的优先):1级级 *、(not)2级级 *、/3级级 +、-、4级级 、=、

14、5级级&(and)6级级|(or)准则3:对于相同优先级的算符,左边的运算先做。但有两个例外:对第一级,右边的先做;2*3*2 2*(3*2)2)当两个比较算符围着一个量时,则等价于一个and运算。例如:12age20 12age and age20SAS函数函数一.SAS函数的定义1.SAS函数的定义:SAS函数是一个子程序,它由0个或几个自变量(参数)返回一个结果值。每个SAS函数都有一个函数名,及用括号括起来的参数,这个函数对这些自变量执行某种运算。即使没有参数也需要括号。SAS函数的形式函数的形式:FunctionName(arg1,arg2,arg3,.)例如:MEAN(x,y,z,

15、a)SUM(x,y,z)MIN(SUM(x,y,z),1000)TODAY()2.SAS函数的分类:SAS函数分为20多种类型,常见的有:算术函数、数组函数、截取函数、数学函数、概率函数、分位数函数、非中心函数、样本统计函数、随机函数、字符函数、日期时间函数等。二二 SAS函数的参数函数的参数 参数类型 变量名 常数 函数 表达式 函数及其参数类型举例。参数个数:有些函数不需要参数,有些只需要一个参数,有些函数有多个参数。SAS9.1中,参数个数不能超过32767。如果函数的参数是表达式,在函数被调用之前,所有表达式参数首先计算。参数的表示法 一般地,当函数有几个参数时,它们之间必须用逗号(,

16、)分隔开。不过,以下三种写法均是合法的:Function Name(OF variable1-variablen)Function Name(OF variable variable.)Function Name(variable,variable,.)例如:sum(of x1-x5)sum(of x1 x2 x3 x4 x5)sum(x1,x2,x3,x4,x5)是等价的。正确与错误的表示方法 数组元素自变量的缩写方法 array y10 y1-y10;/*定义数组y10*/x=sum(of y*);z=sum(of y1-y10);两个SUM函数的表示法是等价的。正确的表示方法错误的表示方

17、法sum(x,y,z)sum(x y z)sum(of x1-x10)sum(x1-x10)sum(of x1-x10 d y1-y100)sum(x1-x10 d y1-y100)函数结果函数结果 通常函数的结果由其参数的属性决定:返回结果是字符时结果变量为字符;返回结果是数值时结果变量为数值。根据缺省规则,对大多数函数来说,数值目标变量的长度是8,字符目标变量的长度通常由返回结果的长度决定三.常用的SAS函数1、数学函数、数学函数ABS(x)求x的绝对值。MOD(x,y)求x除以y的余数。SQRT(x)求x的平方根。ROUND(x,eps)求x按照eps指定的精度四舍五入后的结果,比如RO

18、UND(5654.5654,0.01)结果为5654.57CEIL(x)求大于等于x的最小整数。当x为整数时就是x本身,否则为x右边最近的整数。FLOOR(x)求小于等于x的最大整数。当x为整数时就是x本身,否则为x左边最近的整数。INT(x)求x扔掉小数部分后的结果。LOG(x)求x的自然对数。LOG10(x)求x的常用对数。EXP(x)指数函数。SIN(x),COS(x),TAN(x)求x的正弦、余弦、正切函数。等等2、数组函数数组函数 数组函数计算数组的维数、上下界,有利于写出可移植的程序。数组函数包括:DIM(x)求数组x第一维的元素的个数。DIM k(x)求数组x第k维的元素的个数,

19、如dim2(x)、dim3(x)。LBOUND(x)求数组x第一维的下界。HBOUND(x)求数组x第一维的上界。LBOUND k(x)求数组x第 k维的下界。HBOUND k(x)求数组x第 k维的上界。例:DATA A;ARRAY SC2,3 X1-X6 (6*0);/*定义数组SC*/D1=DIM(SC);D2=DIM2(SC);HB=LBOUND(SC);HB2=HBOUND2(SC);RUN;PROC PRINT;RUN;3、字符、字符函数函数 较重要的字符函数有:TRIM(s)返回去掉字符串s的尾随空格的结果。UPCASE(s)把字符串s中所有小写字母转换为大写字母后的结果。LOW

20、CASE(s)把字符串s中所有大写字母转换为小写字母后的结果。INDEX(s,s1)查找s1在s中出现的位置。找不到时返回0。REPEAT(s,n)字符表达式s重复n次。SUBSTR(s,p,n)从字符串s中的第p个字符开始抽取n个字符长的子串TRANWRD(s,s1,s2)从字符串s中把所有字符串s1替换成字符串s2。LENGTH(s)返回字符串s 长度COMPRESS(s1,s2)从字符串s1中删除字符串s2LEFT(s)字符串s左对齐还有如,COLLATE,LEFT,REVERSE,RIGHT,SCAN,TRANSLATE,COMPBL等4、日期时间、日期时间函数函数 常用日期和时间函数

21、有: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个interval间隔后的

22、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,31Dec1996d,1Jan1998d)计算1996年12 月31日到1998年1月1日经过的年间隔的个数,结果得2,尽管这两个日期之间实际只隔1年5、分布密度函数、分布函数分布密度函数、分布函数 SAS提供了多种概率

23、分布的有关函数。分布密度、概率、累积分布函数等可以通过几种统一的格式调用,格式为分布函数值=CDF(分布,x);密度值=PDF(分布,x);CDF计算由分布指定的分布的分布函数PDF计算分布密度函数值 分布类型:BERNOULLI,BETA,BINOMIAL,CAUCHY,CHISQUARED,EXPONENTIAL,F,GAMMA,GEOMETRIC,HYPERGEOMETRIC,LAPLACE,LOGISTIC,LOGNORMAL,NEGBINOMIAL,NORMAL 或 GAUSSIAN,PARETO,POISSON,T,UNIFORM,WALD 或 IGAUSS,and WEIBULL

24、 分布类型可以只写前四个字母。例如 PDF(NORMAL,1.96)计算标准正态分布在1.96处的密度值(0.05844)CDF(NORMAL,1.96)计算标准正态分布在1.96处的分布函数值(0.975)5、分布密度函数、分布函数分布密度函数、分布函数 SAS还单独提供了常用的分布的密度、分布函数。PROBNORM(x)标准正态分布函数 PROBT(x,df)自由度为df的t分布函数。可选参数nc为非中心参数。PROBCHI(x,df)自由度为df的卡方分布函数。可选参数nc为非中心参数。PROBF(x,ndf,ddf)F(ndf,ddf)分布的分布函数。可选参数nc为非中心参数。PROB

25、BNML(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)超几何分布的分布函数。设N个产品中有K个不合格品,抽取n个样品,其中不合格品数小于等于x的概率为此函数值。可选参数r是不匀率,缺省为1,r代表抽到不合格品的概率是抽到合格品概率的多少倍。PROBBETA(x,a,b)参数为(a,b)的Beta分布的分布函数。PROBGAM(x,a)参数为a的Gamma分布的分布函数。6、分

26、分位数位数函数函数 分位数函数是概率分布函数的反函数。其自变量在0到1之间取值。分位数函数计算的是分布的左侧分位数。SAS提供了六种常见连续型分布的分位数函数。PROBIT(p)标准正态分布左侧p分位数。结果在5到5之间。TINV(p,df)自由度为df的t分布的左侧p分位数。nc为非中心参数。CINV(p,df)自由度为df的卡方分布的左侧p分位数。nc为非中心参数。FINV(p,ndf,ddf)F(ndf,ddf)分布的左侧p分位数。nc为非中心参数。GAMINV(p,a)参数为a的伽马分布的左侧p分位数。BETAINV(p,a,b)参数为(a,b)的贝塔分布的左侧p分位数。7、随机数、随

27、机数函数函数均匀分布随机数 UNIFORM(seed),seed必须是常数,为0,或5位、6位、7位的奇数。RANUNI(seed),seed为小于 2*31-1的任意常数。正态分布随机数 NORMAL(seed),seed为0,或5位、6位、7位的奇数。RANNOR(seed),seed为任意数值常数 二项分布随机数 RANBIN(seed,n,p)产生参数为(n,p)的二项分布随机数,seed为任意数值。泊松分布随机数 RANPOI(seed,lambda)产生参数为lambda0的泊松分布随机数。通用函数 RAND(分布名,参数1,参数k)分布名:BERNOULLI、BETA、BINOM

28、IAL、CAUCHY、CHISQUARE、ERLANG、EXPONENTIAL、F、GAMMA、GEOMETRIC、HYPERGEOMETRIC、LOGNORMAL、NEGBINOMIAL、NORMAL|GAUSSIAN、POISSON、T、TABLE、TRIANGLE、UNIFORM、WEIBULL 例如,例如,x=RAND(NORMAL);返回标准正态分布随机数返回标准正态分布随机数 x=RAND(NORMAL,5,2);返回均数为返回均数为5,标准差为,标准差为2的正态分布随机数的正态分布随机数 x=RAND(T,26);返回自由度为返回自由度为26的的t分布随机数分布随机数8、样本统计

29、、样本统计函数函数 样本统计函数把输入的自变量作为一组样本,计算样本统计量。调用格式为“函数名(变量1,变量2,变量n)”如果要求x1,x2,x3的和,可以用SUM(x1,x2,x3)样本统计函数只对变量中的非缺失值进行计算,缺失值不纳入计算。各样本统计函数为:MEAN 均值 MAX 最大值 MIN 最小值 N 非缺失数据的个数 NMISS 缺失数值的个数。SUM 求和 VAR 方差 STD 标准差 STDERR 均值估计的标准误差,用STD/SQRT(N)计算。CV 变异系数 RANGE 极差 CSS 离差平方和 USS 平方和 SKEWNESS 偏度 KURTOSIS 峰度 注意:数据集的存储一般是每行为一个个体的观测值,每列是个体的一个变量,所以统计一般应该对列进行,而不是对行进行。上述函数是对行进行处理,因此,样本统计函数主要用于进行一些自编程的计算。若要对每一列进行统计,需要用过程步,如proc means等谢谢

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(2SAS基础表达式及函数简介课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|