SAS基础表达式及函数简介.ppt
《SAS基础表达式及函数简介.ppt》由会员分享,可在线阅读,更多相关《SAS基础表达式及函数简介.ppt(39页珍藏版)》请在三一办公上搜索。
1、SAS表达式及函数简介,SAS表达式,SAS表达式是由一系列算符和运算对象形成的一个指令集,它被执行后产生一个目标值。运算对象是SAS变量和SAS常数;算符是特殊的运算符、函数和括号。表达式分为简单表达式和复合表达式。下列式子都是表达式。X+1 3 LOG(X)LOG10(X)P/A*100 AGE1001-EXP(N/(N-1)A=B=C STATE=CA 在DATA步中,为了对变量进行变换,建立新变量、条件处理、计算新值及指定新值,都需要使用SAS表达式。,一、SAS常数 SAS常数用来表示固定的值,它或者是一个数字,或者是用引号引起来的字符串、或者是其它特殊记号。SAS使用的常数有五种类
2、型:数值常量、字符常量、日期、时间和日期时间常量、十六进制数值常量、十六进制字符常量。我们主要介绍数值常量、字符常量和日期常量。1.数值常量:一个数值常量就是出现在SAS语句里的数字。数值常量可以包括小数点,负号和E记号。例如:1-5 1.23 1.2E23 0.1 0.5E-10。用E表示法时,如2E4,它表示,或者20000。SAS系统中,数值缺失值用小数点来(.)表示。,2.字符常量 字符常量是由(单)引号括起来的字符串.例如,在下面的语句中:IF name=TOM THEN DO;TOM就是一个字符常量。如果字符常量含有引号,则用两个连续的单引号来处理。例如,字符值为TOMS时,输入:
3、name=TOMS 缺失的字符常量值为空字符,表示为或”(两个连续的单引号或双引号)。注意,下面语句中 TOM不是字符常量,而是按变量处理!IF name=TOM THEN Score=85;,3.日期、时间常量:日期时间常量是将日期时间由(单)引号括起来,后面加上d或t或dt而形成的。例如:日期常量:15may2008d 时间常量:16:45:01t 日期时间常量:15may2008:16:45:01dt注意:日期格式为:DDMMMYY 或 DDMMMYYYY即,月份需要用三个英文字母表示,二 SAS变量:描述给定特征的数值集合的指标称为变量。SAS变量的特征:变量名、类型、存储长度、标签、
4、输入格式、输出格式,存储长度指变量在存储时所需要的字节数。默认情况下所有的变量都定义为8字节。字符变量的长度可为1-32768字节,数值变量的长度可为3-8字节。标签是对变量的补充说明,可以为任意字符,长度可多达256个字符。,SAS数据集(部分),Observations,输入输出格式,原始数据值,SAS变量的值,格式化的SAS变量值,Dollar10.,Comma8.,548,231,25JAN2004,16095,01/25/2004,Date9.,MMDDYY10.,$548,231,548231,日期和时间数据的存储,SAS采用数值存储日期和时间形式的数据。在默认情况下,SAS系统以
5、0代表1960年1月1日0时。其它日期在SAS系统中被存储为与该日期相差的天数。例如,1960年1月3日,在系统中存为2。2004年1月25日,在系统中存为16095。注意:为了使数值型变量显示日期形式,必须使用日期型的输出格式,同样地为了以日期形式输入日期必须使用日期型的输入格式。,SAS变量分为两类,数值变量(Num)与字符变量(Char)。数值型变量只能取数值为值。可以有正负号及小数点(+、),但不能有逗号(,)。数值型是SAS的默认变量类型,默认长度为8位。字符型变量可以取字符、字母、特殊字符以及数字为值。在DATA步中某些SAS语句中,第一次出现的变量名后跟一个美元符号($),即表明
6、该变量是字符型变量,如name$或name$。如果变量后不加$符号,SAS将该变量认为数值型。在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
7、;/*将字符变量赋值给一个数值变量时,自动将字符变量Y转换为数值变量*/run;data;X=1;/*X为数值变量*/Y=10;/*Y为字符变量*/Z=X+Y;/*算术表达式中有字符变量时,自动将字符变量Y 转换为数值变量*/run;,函数INPUT将字符转换为数值,INPUT函数的形式:INPUT(数据源,输入格式);其中:数据源为要转换为数值的变量,常数或表达式。数据源既可以是数值型,也可以是字符型。输入格式规定对数据源进行转换的输入格式。,data a;y=input(12345,5.2);run;,数值自动转换为字符,data;X=abcd;/*X为字符变量*/Y=123;/*Y为数值
8、变量*/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 10,Z=600001,系统自动地将数值转换为字符时,使用BEST12.的输出格式,字符值右对齐,不足12位
9、时左侧以空格补齐。,函数PUT将数值转换为字符,PUT函数的形式:PUT(数据源,输出格式);其中:数据源为要转换为字符值的变量,常数或表达式。数据源既可以是数值型,也可以是字符型。输出格式规定对数据源进行转换的输出格式。,data a;x=put(34.416,5.2);y=input(12345,5.2);run;,data;X=1;/*X为数值变量*/Y=10;/*Y为字符变量*/if XY then k=1;/*字符与数值变量进行比较时,自动将字符变量Y转换为数值变量*/run;data;Y=10;/*Y为字符变量*/Z=log(Y);/*需要数值变量的函数中引用字符变量时,自动将字符
10、变量Y转换为数值变量*/run;,自动变量,自动变量是由数据步语句自动创建的。这些自动变量被加入到程序数据向量(PDV)中,但是并不输出到数据集中。自动变量在重复过程中被保留,而不是被设定为缺失。如,_n_ _error_ first.byvar last.byvar _numeric_ _all_ 等,例:使用自动变量_Numeric_。data one;set sashelp.class;keep _numeric_;/*只保留数据集中的数值变量*/run;,三 SAS算符 SAS算符是一些符号,它们要求作比较、算术运算或逻辑运算。SAS使用两种主要类型的算符:前缀算符和中缀算符 前缀算符
11、用于变量、常数、函数或者用括号括起来的表达式。例如:+Y-25-COS(A)-(x1+x2-100)前缀算符有:加号,减号,NOT和符号。中缀算符作用在算符两边的运算对象上,例如68。中缀算符一般分为四类:算术算符、比较算符、逻辑算符和其它算符(最大、最小和连接)。,1.算术算符:算术算符表示执行一种算术运算,包括:*乘方*相乘/相除+相加-相减 如果算术算符有一个运算对象是缺失值,运算结果也是缺失值。例如,y=x3+.;则y的值为缺失值(.)2.比较算符:比较算符确定两个量之间的一种关系,如果这种关系成立,则输出结果为1(真);如果它不成立,则输出结果为0(假)。比较算符包括:=(EQ)等于
12、=(NE)不等于(GT)大于=(GE)大于等于=(LE)小于等于(1)算术表达式的比较 考虑表达式:A=B。如果A的值为4,B的值为3,则表达式A=B的值为0(假);若A的值为5,B的值为9,则表达式A=B的值为1(真);若A与B的值均为47,则表达式成立,且其值为1。,(2)字符的比较 比较的对象可以是数值也可以是字符,但比较的结果总是数值1(真)或0(假)。字符运算对象在字符之间从左到右被比较。字符次序用机器排列次序确定(即按ASCII码排列序列)。例如,表达式GRAYADAMS是真的,它与表达式 ANDRE,CANDRE,CLYDE一样,它们的值都是1。3.逻辑算符:逻辑算符也称为布尔(
13、Boolean)算符,在表达式里通常用来连接一系列比较式。逻辑算符包括:&(AND)与;|(OR)或;(NOT)非 例如,age=25 AND sex=男 或 age=25&sex=男 age=25 OR sex=男4.运算次序:关于运算次序,SAS有如下的三个准则:准则1:在括号里的表达式先计算;准则2:较高优先级的运算先被执行。,下面是各运算符的优先等级(排在前面的优先):1级*、(not)2级*、/3级+、-、4级、=、2*(3*2)2)当两个比较算符围着一个量时,则等价于一个and运算。例如:12 12age and age20,SAS函数,一.SAS函数的定义1.SAS函数的定义:S
14、AS函数是一个子程序,它由0个或几个自变量(参数)返回一个结果值。每个SAS函数都有一个函数名,及用括号括起来的参数,这个函数对这些自变量执行某种运算。即使没有参数也需要括号。SAS函数的形式:FunctionName(arg1,arg2,arg3,.)例如:MEAN(x,y,z,a)SUM(x,y,z)MIN(SUM(x,y,z),1000)TODAY(),2.SAS函数的分类:SAS函数分为20多种类型,常见的有:算术函数、数组函数、截取函数、数学函数、概率函数、分位数函数、非中心函数、样本统计函数、随机函数、字符函数、日期时间函数等。,二 SAS函数的参数,参数类型变量名常数函数表达式函
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAS 基础 表达式 函数 简介
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6518441.html