




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 SAS 编程基础第一节 SAS 逻辑库2.1.1 什么是SAS逻辑库SAS逻辑库是SAS系统对计算机文件夹或数据库系统的一个指向性逻辑标识,通过该标识,可以指向一个物理文件路径,或指向一个数据库实例。常用的SAS逻辑库有sasuser、saswork、sashelp等。2.1.2 创建(定义)SAS逻辑库LIBNAME 逻辑库名 “物理路径”;语法解读: Libname: 定义逻辑库命令 逻辑库名:即给逻辑库起的名字,字符长度不超过8B。 引擎:可选项,如果连接数据库,就要给出连接的相应数据库的引擎名称。 物理路径:就是实际的文件夹文理路径。例子: Libname testlib “c:datatest”; Libname zhangsan “/home/user/data/”; Libname oradb oracle user=user1 password=xxx path=orcl; Libname mylib ACCESS “d:student.mdb”;2.1.2 逻辑库的引用 方法:逻辑库名.数据集名 例:第二节 常量、变量与观测值2.2.1 观测值描述单一整体,如个别人、一个实验动物、一年、一个地区某些特性的一系列数据值称为观测值,又称观察。2.2.2 变量 在SAS数据集中,每一个观测值是由各个变量的数据值组成,在数据集中每一列数据是一个变量。 1命名 SAS变量名和其他名称如数据集名等的命名规则都相同,它可以多至32个字符长,第一个字符必须是字母(A,B,C,Z),或者是下划线(_),后面的字符可以是数字或下划线。空格不能出现在SAS名中,特殊字符(如$,#)也不允许在SAS名中使用。SAS系统保留了一定的名称作为特殊的变量名,这些名称以下划线开始和结尾。如_N_和_ERROR_等。 2变量特性 SAS变量有两种类型,数值型和字符型。字符型变量在名后用一“$”号来表示。除了他们的类型外,SAS变量还有下列特性:长度、输入格式、输出格式和标记。 变量的长度特性,是指在SAS数据集中用以存储它的每一个值的字节数。字符变量缺省长度是8(为了存储长度与缺省值不同的变量,需使用LENGTH语句)。变量的特性,或者明确地说明,或者在它们首次出现时的上下文中给出定义。3.变量赋值 字段变量的input语句赋值;直接赋值;宏变量直接赋值;data human; length sfz $18.; input name $ sex $ sfz;cards;Zhang M 31011019800101001Li F 31010919720508002;run;data test; x=2; y=3; z=x+y;run;libname test /home/net/sasuser.v93/;%let file1=/home/net/sasuser.v93/human.txt;data test.human; infile &file1; length sfz $18.; input name $ sex $ sfz;run; 4变量清单的简化表示在SAS程序中定义了完整的变量清单后,就可以在后面许多语句中使用缩写变量清单形式。名称形式缩写意义形如:X1,X2,Xn的带有序号的名称X1Xn从X1到Xn的所有变量形如 X P A * 的名称范围XA从X到A的所有变量XNUMERICA从X到A的所有数值变量XCHARACTERA从X到A的所有字符变量特殊SAS名称_NUMERIC _ 所有数值变量_CHARACTER _所有字符变量_ALL _所有变量 例如: INPUT NAME $ VARl VAR2 VAR3 VAR4 VAR5 VAR6;也可以写成: INPUT NAME $ VARl-VAR6;注意字符型变量NAME不包含在这个缩写清单中,有序号的变量不必全部列出,这些变量要求类型相同,或全是数值型的或全是字符型的。 5缺项值 当一个变量由于某种原因没有得到(可能没有观测到,或由于数据错误,或由于计算错误),称该值为缺项值(又称缺失值). 在SAS中用“”表示。6.变量的类型转换SAS变量属于弱类型的,许多场合会自动转换。转换的规则:(1)、字符型自动转换为数值型,当: 字符型变量和数值型变量做运算; 字符型变量赋值给数值型变量;,(2)、数值型自动转换为字符型,当: 数值型变量赋值给字符型变量; 数值型变量与字符型变量做字符连接运算; 数值型变量用在字符处理函数中;data test; x=2; y=3; z=x+y;proc print;run;data test; x=2013; y=Sep.; z=y|x;proc print;rundata test; x=12345678; y=substr(x,6,3);proc print;run;data test; x=12345678; y=substr(compress(x, ),6,3);proc print;run;2.2.3 常量 SAS常量是一个数,或一个括在引号中的字符串,或者是一个指示固定值的特殊的标记。 SAS常用3种常量:数值,字符,日期,时间或日期时间值。 常量可被用于赋值、求和、IF、SELECT、RETAIN,PUT和ERROR语句中,或作为特定过程的可选项的值。 1数值常量 数值常量可为正负整数和小数,对于过大和过小的数则用科学记数法表示。 如:1.785E-9即1.785*10-9,对于数值型量的缺项值用“”来表示。 2字符常量一个字符常量可由1至200个字符组成。例如:姓名Zhangli,性别Male等。字符型缺项值用空格来表示。 3日期、时间和日期时间常量 日期型常量包括日期(date)、时间(time)和日期时间(datetime)三种类型,全部用单引号或双引号括起来。分别通过加后缀字符d、t、dt表示。例如:data test; riqi=1Jan1980d; shijian1=9:25t; shijian2=9:25:19t; riqishijian=18Jan2010:9:27:05pmdt;proc print; format riqi yymmdd10. shijian1 time10. shijian2 time10. riqishijian datetime22.;run;为了将日期、时间或日期时间值赋给变量,应指出变量的输入格式或输出格式:TIME、DATE、和DATETIME。2.2.4 宏变量可代换值的变量,在程序中可以动态代换使用。定义宏变量:%let 宏变量名例如:%let class; %let class=first_class;第三节 SAS函数 SAS函数是一个程序,它对一个或多个参数进行计算后返回一个值。每一个SAS函数有一个关键字名,为了调用一个函数,写出函数名接着是括在括号中的一个或多个要进行计算的参数: 函数名(参数1,参数2,) 当参数多于一个时,参数之间应该用逗号分隔,也可写成如下两种形式之一:函数(OF 变量1-变量n)函数(OF 变量1 变量2 变量3)例如下列形式是正确的: SUM(OF X1-X100 Yl-Y100) SUM(OF X Y Z) SUM(X1,X2,X3,X4)2.3.1 算术函数 ABS(x) 返回x的绝对值 DIM(array) 返回数组中元素个数 MAX(X,Y,) 返回X,Y中的最大值 MIN(X,Y) 返回X,Y中的最小值 MOD(X,Y) 计算xy的余项 SIGN(x) 返回参数x的符号或O SQRT(x) 计算x的平方根还有LBOUND和HBOUND等函数。2.3.2 数学函数 EXP(x) e的幂 LOG(x) 产生自然对数 LOG2(x) 计算底为2的对数 LOG10(x) 计算底为10的常用对数 DIGAMMA(x) 计算GAMMA函数对数的导数 还有ERF、ERFC、GAMMA、LGAMMA等函数。2.3.3 三角函数和双曲函数 COS(x) 计算余弦 SIN(x) 计算正弦 TAN(x) 计算正切 还有ARCOS、ARSIN、ARTAN、COSH、SINH、TANH等函数。2.3.4 概率函数 PROBBNML(p,n,f) 二项式(BINOMIAL)概率分布函数; PROBCHI(x,df) 卡方概率分布函数 PROBF(x,ndf,ddf) F分布函数 PROBNORM(x) 标准常规概率分布函数 PROBT(p) STUDENTS T分布函数 还有POISSON,PROBBETA、PROBGAM、PROHYPR、PROBNEGB等函数。2.3.5 分位数函数 CINV(p,df,nc) 卡方分布分位数 FINV(p,ndf,ddf,nc) F分布分位数 TINV(p,df,nc) T分布分位数 还有BETAINV、GAMINV、PROBIT等函数。2.3.6 样本统计函数 MEAN(x,y) 计算算术均值 STD(x,y,) 计算标准差 SUM(x,y,.) 计算参数和 VAR(x,y,) 计算方差 还有CSS、CV、KURTOSIS,MAX,MIN,N,NMISS,RANGE、SKEWNESS、STDERR,USS等函数。2.3.7 随机函数 RANNOR(x) 产生一正态偏差 RANUNI(x) 产生一均匀偏差还有NORMAL,RABIN,RANCAU、UNIFORM、RANEXP,RANGAM、RANPOI、RANTBL、RANTRI等函数。2.3.8 字符函数 INDEX(a,b) 求字符串b在字符串a中的位置 LEFT(a) 左对齐一个字符串 LENGTH(a) 返回字符串a的长度。 RIGHT(a) 右对齐一字符串 TRIM(a) 移走字符串尾部的空格 还有BYTE、COLLATE、COMPRESS、INDEXC、RANK、REPEAT,REVERSE、SCAN、SUBSTR、TRANSLATE、UPCASE,VERIFY等函数。2.3.9 日期和时间函数 DATE() 返回今天日期作为SAS日期值 DAY(date) 从SAS日期值返回月份中的日数 YEAR(date) 从SAS日期值返回年数 还有DATEJUL、DATEPART、DATETIME、DHMS、HMS、HOUR、INTCK、INTNX、JULDATE、MDY、MINUTE、MONTHQTR、SECOND、TIME、TIMEPART、TODAY、WEEKDAY、YYQ等函数。第四节 SAS操作符 SAS操作符是表示需要作算术计算、比较或者逻辑操作的记号。2.4.1 算术操作符 算术操作符指出一个要执行的算术计算。算术操作符是:* * 乘方 * 乘 除 +加 -减对于一个算术操作符的操作数若为缺项值,结果也为缺项值。2.4.2 比较操作符 比较操作符要求SAS确定两个数据量间是否存在这种关系。如果不存在(换句话说如果它是假的)其结果值为0。比较操作符是: =或EQ 等于 =或NE 不等于 或GT 大于 =或GE 大于等于 =或LE 小于等于 对字符值比较也与数值比较一样,比较总是输出一个数值结果(1或0)。字符操作数被从左到右一个字符一个字符地按ASCII码值进行比较。 比较算符主要用于条件语句中,但也可用于赋值语句中,例如: IF XY THEN C=15; ELSE C=12;可写成: C=15*(X=Y);2.4.3 逻辑操作符 逻辑操作符也叫布尔算符。它通常用在连接一系列比较表达式中。符号如下: & AND | OR NOT 如果AND两端都为真,那么AND操作的结果是1。例如表达式: A0仅当A0为1(真)时,也就是当A小于B,且c为正时,该表达式为真(值为1)。 如果OR两端至少有一个为l(即为真),那么OR操作的结果为1(真),否则OR操作结果为0值。例如表达式: A0只要两个关系中有一个成立时其值即为真。2.4.4 其他操作符 这些操作符是 (MIN), (MAX)和 | (连接) 和算符放在两个量之间,其结果如果用的是则取其中最小值,如果用的是则取其中最大值。例如,如果AB的值为A。 |算符联接两个字符值。例如,如果变量COLOR的值是RED,同时变量NAME的值为BAG,那么: M=COLOR |NAME;M的结果值是RED BAG。 如果在连接前要从各个值中滤掉尾部空格,可使用TRIM函数。2.4.5 SAS表达式 表达
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商铺租赁修缮协议书范本
- 教培工作合同协议书范本
- 规避房东租房的合同范本
- 健身器械代销合同协议书
- 协议离婚老公不看协议书
- 残疾孩子抚养协议书范本
- 挂靠园林公司资质协议书
- 产品原材料制作合同范本
- (2025年标准)品牌招牌转让协议书
- (2025年标准)排涝渠施工协议书
- 仓库消防知识培训课件
- 重症护理的护理课件
- 医务科医疗质控记录范文
- 《电梯企业介绍》课件
- 《风景区概述》课件
- BG转子式干燥机说明指导书
- 关于规范学校中层及以上领导干部岗位设置及任免办法
- 劳务分包合同示范文
- 软件测试技术基础教程(第3版)高职PPT完整全套教学课件
- (完整版)书籍装帧设计
- 肿瘤科专业组药物临床试验管理制度及操作规程GCP
评论
0/150
提交评论