资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
第二章 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 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,R
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号