您好,欢迎访问三七文档
SAS表达式简介1.SAS常数表达式(1)数值常数如:1.23、-5、0.5E-10。(2)字符常数如:name1='TOME'、name2='MARY'、name3='JOHN'。(3)日期(d)、时间(t)、日时(dt)常数如:d1='01JAN80'd、t1='9:25:19't、dt1='18JAN80:9:27:05'dt。(4)16进制常数(略)2.SAS运算符(1)前缀算符与后缀算符前缀算符,即正号或负号;如:+Y;-25;-COS(30);+(X*Y);后缀算符,即两个运算对象之间的运算符号,如:1+9;4-2;68。(2)只含一个运算符的简单表达式(Ⅰ组)和含有多于一个运算符的复合表达式(Ⅱ组)Ⅰ组,如:A+B;C-D;E*F;G/H;Ⅱ组,如:1-EXP(N/(N-1));100-LOG(N*(N+1));(3)操作运算的顺序求一个复合表达式的值时,其操作运算的顺序和优先级遵从如下的规则(见表5.1):表5.1SAS的运算符及其在运算顺序上的优先级━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━优先级组别运算符号等价表示运算符号含义之说明━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━第0组()括号第1组**+-乘方,正数,负数^NOTMINMAX逻辑非,最小,最大第2组*/乘,除第3组+-加,减第4组‖或||字串连接第5组=LTLE小于,小于等于=^=EQNE等于,不等于=GEGT大于等于,大于IN等于一列元数中的某一个第6组&AND逻辑与第7组|或|OR逻辑或━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━各组的计算顺序分别为:第0组由内向外;其他各组均自左至右。第4组和第7组都给出了两种运算符号,这是因为不同的系统可能只认识其中的某一种5.2SAS函数简介SAS软件中共有13类147个SAS函数,现将其中最常用者的用法作一扼要介绍。1.算术函数(1)求一个数的绝对值的函数ABS和求一个正数的算术平根的函数SQRT如求-250的绝对值的语句为x=ABS(-250)、求625的算术平根的语句为y=SQRT(625)。(2)求若干个数的最大值的函数MAX和最小值的函数MINDATA;a1=2;a2=-9;a3=15;a4=-23;x=MAX(ofa1-a4);y=MIN(ofa1-a4);FILEPRINT;PUTxy;RUN;程序运行结果为∶x=15、y=-23。2.截取函数(1)取一个数的整数部分的函数INT、按规定舍入精度取一个数的近似值的函数ROUND;(2)取≥自变量的最小整数的函数CEIL、取≤自变量的最大整数的函数FLOORDATA;运行结果a=INT(223.456);b=ROUND(223.456,100);a=223b=200c=ROUND(223.456,10);d=ROUND(223.456,1);c=220d=223e=ROUND(223.456,0.1);f=ROUND(223.456,0.01);e=223.5f=223.46g=CEIL(2.4);h=CEIL(-2.4);i=FLOOR(2.4);j=FLOOR(-2.4);g=3h=-2FILEPRINT;PUTabcdefghij;RUN;i=2j=-33.数学函数(1)以e为底的指数EXP、自然对数LOG(以e为底)、以2为底的对数LOG2和常用对数函数LOG10(以10为底)DATA;a=2;b=2.718281828;c=10;w=EXP(a);x=LOG(b);y=LOG2(a);z=LOG10(c);FILEPRINT;PUTwxyz;RUN;程序运行结果为∶w≈7.389056、x≈1、y=1、z=1。(2)正弦SIN、余弦COS、正切TAN以及它们的反函数ARSIN、ARCOS、ATANu=SIN(a);v=COS(a);w=TAN(a);这里a的单位是弧度,u,vw是实数;x=ARSIN(b);y=ARCOS(b);z=ATAN(b);这里b是实数,x,y,z是弧度。4.概率函数(1)泊松函数POISSON和二项概率函数PROBBNML求概率P=∑nj=0e-λ(λj/j!),函数的格式是:POISSON(λ,n),当λ=1、n=2时,程序为:DATA;P=POISSON(1,2);FILEPRINT;PUTP;RUN;结果是:P=0.9197。求概率P=∑mj=0CjnPj(1-P)n-j,函数的格式是:PROBBNML(p,n,m),当p=0.5、n=10、m=4时,程序为:DATA;P=PROBBNML(0.5,10,4);FILEPRINT;PUTP;RUN;结果是:P=0.37695。(2)在标准正态、'学生't、卡、F下,若给定横坐标上的分位点和自由度的值,可求出随机变量小于等于该分位点值的概率,其语句的形式如下:Pu=PROBNORM(u);Pt=PROBT(t,df);Px=PROBCHI(x,df);Pf=PROBF(f,ndf,ddf)这里,u、t、x、f分别代表服从标准正态、中心t、中心卡、中心F的随机变量所取的分位点的值,df为自由度,ndf、ddf分别为F统计量中分子、分母的自由度(下同),Pu、Pt、Px、Pf为各随机变量取值小于给定分位数的概率。5.分位数函数在标准正态、'学生't、卡、F下,若给定左侧尾端的概率P和自由度df的值,可求出横坐标上的分位点的数值,其语句的形式如下:①u=PROBIT(P);②t=TINV(P,df);③χ2=CINV(P,df);④F=FINV(P,ndf,ddf)注意:实际使用时,常需计算出与右侧尾单的概率相对应的分位数,故可令P=1-alpha,这里,alpha就是事先规定的右侧尾端概率。6.样本统计量函数给定一组定量数据Xi,i=1,2,…,n,欲求15种样本统计量之中某些统计量的值时,可用相应的样本统计量函数计算;若同时想得到所有这些值,可直接用UNIVARIATE过程计算。样本统计量函数在语句中的形式如下(以求样本均数的函数MEAN为例,其他用法相同):A1=MEAN(ofX1-Xn);或A2=MEAN(X1,X2,…,Xn);第1种形式适合事先给变量X1~Xn赋了值的场合;第2种形式适合直接将具体数代入括号内)。7.日期函数由两富同日期计算出它们之间的天数,可用INTCK函数。如:A='01JUN93'D;B='01JUN94';C=INTCK('DAY',A,B);则C=365(天)。其他从略。5.3SAS语句简介Ⅰ.用在DATA步的文假作语句1.DATA语句表示一个数据步的开始,并给出正被创建的SAS数据集的名字。(1)格式:DATA[SASdataset[(dsoptions)]]…;(2)说明:SASdataset是这个DATA步正被创建的一个或几个SAS数据集的名字;dsoptions告诉SAS系统关于正被创建的SAS数据集的更多的信息。(3)SAS数据集的名字的种类①省略数据集名DATA;等价于写:DATA_DATA_;每运行一次,SAS系统自动给创建的数据集依次命名为DATA1,DATA2,…。②单水平名字DATAABC;SAS系统自动命名为WORK.ABC,这里WORK是隐含的第一水平名字,即库名,彻底退出SAS系统时,此数据集就消失了,故称为临时数据集。ABC是第二水平名字,它可以由不超过8个字符组成。③双水平名字DATA这里是库标记,它靠LIBNAME语句建立起与某个目录之间的联系,如:LIBNAME:\HULP';DATA枕明想在C盘的目录名为HULP下建立一个名为ABC.SSD的永久数据集,“.SSD”是SAS系统自动加的,此文件只供SAS系统调用,用户无法直接阅读。调用方式为:LIBNAME:\HULP';PROC过程名DATA=再写其他SAS语句。④特殊的数据集名DATA_NULL_;和DATA_LAST_;前一个语句表明只想用PUT语句来输出一些结果,但不想创建SAS数据集,可减少使用计算机的资源;后一个语句表明SAS系统使用一个称为_LAST_的特殊自动变量来保留在一个SAS程序里最新创建的SAS数据集。注意:在进入SASDMS后要建立的第一个数据集名不能用_LAST_。⑤同时使用多个数据集名如果你想对一组含有年龄和另外10个变量的资料按青年、中年、老年创建三个数据集,可用如下的方法实现:DATAONETWOTHREE;INPUTAGEX1-X10;IFAGE=35THENOUTPUTONE;ELSEIFAGE35ANDAGE=55THENOUTPUTTWO;ELSEIFAGE55THENOUTPUTTHREE;CARDS;(4)dsoptions(即SAS数据集的选择项)注意∶下面的②、⑥两个选择项仅当读已存在的SAS数据集时有效。①DROP=变量名列表等号后面的所有变量将不出现在此数据集中;②FIRSTOBS=n从数据集中第n个观测值开始处理;③IN=变量名在SET,MERGE或UPDATA语句里规定一个新变量的名字,其取值指示观测从哪个数据集得到。如:MERGEONE(IN=A)TWO;即当前观测取自ONE时,则A=1,这一信息可用于DATA步中间的程序语句(如:IFA=1THEN…),但此变量不进入正被创建的SAS数据集中;④KEEP=变量名列表等号后面的所有变量将保留在数据集中;⑤LABEL='单引号内写标签内容,字符数应≤40';⑥OBS=nn指被处理的已存在的数据集的最后一个观测的序号;⑦TYPE=DATA(或TYPE=CORR)指定SAS数据集的类型,DATA指一般的数据集、CORR指结构为相关矩阵的数据集,常由SAS过程自动产生;2.INFILE语句(输入文件语句)用来定义一个外部文件,它需用INPUT语句读取。外部文件可以是已存在磁盘上的,也可以是从键盘上输入的数据行。(1)格式:INFILEfilespecificationoptions;(2)说明:filespecification用来定义文件,options给出选择项;(3)filespecification有以下三种形式:①fileref(文件标志)②'filename'(文件名)③CARDS指明输入的数据紧跟着CARDS语句,如:INFILE'C:\HULP\ABC.PRG'options;这里C:\HULP是文件标志、ABC.PRG是文件名;又如:INFILECARDSoptions;这里CARDS相当于文件标志。(4)下列选择项(options)可以出现在INFILE语句中:①COLUMN=variable或COL=variable定义一个变量,其值是指针所在的当前列位置。②END=variable定义一个变量,作为文件结束的标志。③EOF=label是一个语句标号,当INFILE语句读到文件末尾时,作为隐含的GOTO语句的目标。④FIRSTOBS=linenumber要求从指定的行开始读取数据,而不是从文件的第一个记录开始。⑤LENGHT=variable定义一个变量,其值是当前输入数据行的长度。⑥OBS=n指定从一个顺序输入文件中读取数据的最后一个观测(即第1~第n个观测)。3.INPUT语句(输入语句)描述一个输入记录中数值的安排情竣给相应的SAS变量赋输入值,该语句只能用于读入存放于外部文件中的数据或跟随在CARDS语句之后的数值。(1)一般形式:INPUT[specification]…;(2)说明:在INPUT语句中有四种方式描述一个记录值,即①列格式输入(column)INPUTvariable[$]startcolumn[-endcolumn][.decimals];variable变量名,$指明其前面的那个变量是字符型的,数值型的变量则不写$,若这个变量在前面已被定义为字符袖量,$也不需写
本文标题:sas 基础表达式
链接地址:https://www.777doc.com/doc-4001273 .html