资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第二章,SAS,编程基础,Basic Programming of SAS,主要内容,2.1 SAS,程序的使用常识,2.2 SAS,数据集、常量、变量与观测,2.3 SAS,函数,2.4 SAS,操作符,2.5,数据步流程,2.1 SAS,程序的使用常识,SAS,语句(,statements,)的基本结构,SAS,程序由语句组成,语句由关键字开始,各项之间用空格分开,语句都以分号,;,结束,一个语句可以占多行,一行中可以写多个语句,数据步和过程步,数据步,(Data step),:用来创建数据集,过程步,(Proc step),:利用已创建的数据集完成特定的,统计分析任务,程序步,环境设置语句,SAS,程序,SAS,程序的书写规则,每个语句尽量占一行,如需要多行,则从第二行开始采用缩进格式,所有数据步和过程步均以,RUN;,结束,内容缩进排列,尽量只使用小写,或只把关键字大写,其余小写,在较长程序段前后加空行或注释,SAS,程序的运行,完整程序运行,运行,-,提交,F8,提交工具按钮,部分程序运行,选中某程序段后提交,提交第一行,提交,N,行,SAS,程序中的注释,方法:,以*开始,以,;,结束,/*/,用途:,程序说明,使程序清晰易读,调试程序,2.2 SAS,数据集、常量、变量与观测,数据集,(Dataset),数据集是,SAS,可以管理的结构化的数据,只有,SAS,数据集中的数据才能被,SAS,过程步处理。,数据集为关系型,包含两部分内容:,描述部分,:,包含数据集的一般信息,包括:,数据集的名字及其成员类型,数据集建立的日期和时间,观测的数目、变量的数目,数据集中每一个变量的属性信息,数据部分,:,包含实际数据值,SAS,数据值被安排在一个矩阵式的表状结构中。,观测,(Observation),描述被观测对象的单一整体(如一个人、一个实验动物等)某些所研究特性的一系列数据值称为一个观测,又称观察。,在数据集中每一行数据是一个观测,。,变量,(Variable),变量指定了数据的某一特性。在,SAS,数据集中,每一个观测是由各个变量的数据值组成。,在数据集中每一列数据是一个变量,。,变量的命名(数据集名也按此规则),变量名最多,32,个字符长,一般由字母、数字、下划线组成,第一个字符必须是字母或者下划线,不能有空格,特殊字符,(,如,$,,,,,#),不允许在变量名中使用。,SAS,系统保留的特殊变量名,以下划线开始和结尾。如:,_N_,和,_ERROR_,等。,合法变量名如,:,A A1 abc A_1 name age,变量特性,名称,(name),类型,(type),数值型,numeric,字符型,character,(后跟,“,$,”,符号),长度,(length),:指存贮变量值的字节数,缺省,8Byte,,,LENGTH,语句,输入格式,(format),:读入变量值的方式,输出格式,(,informat,),:展现变量值的方式,标记,(label),:变量名的描述性标识,不大于,256,个字符,定义变量特性的两种方法:,明确地说明:用,input,语句,在首次出现时给出定义:用 赋值语句,例如:,DATA A;,C=BAD;,PUT C;,C=GOOD;,PUT C;,RUN;,变量清单的简化表示,如果要一次定义或指定多个同种类型变量,可以使用缩写的变量清单形式:,(P15,表,2-1),INPUT NAME$VAR1 VAR2 VAR3 VAR4 VAR5 VAR6;,可以写成:,INPUT NAME$VAR1-VAR6;,这些变量需要:,有序号(数字或字母序号),类型相同,或全是数值型的或全是字符型的。,表,2-1 SAS,变量清单,名称形式,缩写,代表,形如,X1,X2,Xn,的带有序号的名称,X1-Xn,从,X1,到,Xn,的所有变量,形如,X-P-A*,的名称范围,X-A,从,X,到,A,的所有变量,X-NUMERIC-A,从,X,到,A,的所有数值变量,X-CHARACTER-A,从,X,到,A,的所有字符变量,特殊,SAS,名称,_NUMERIC_,所有数值变量,_CHARACTER_,所有字符变量,_ALL_,所有变量,缺项值,当一个变量由于某种原因没有得到,称该值为缺项值或缺失值),在,SAS,中用,“,.,”,或空格表示。,没有观测到,数据错误,计算错误,常量,(Constant),其值固定不变的量,常用于赋值、运算等语句中。如:,x=10;c=,“,张,”,;,常量分为三类:,数值常量:,1.5 -2.79 1.75E-5,字符常量:,“,Hello,”,“,ABC,”,Zhangli,日期、时间、日期时间常量:后接,D,T,DT,1JAN2000,D,9:25:19,T,1JAN2000:10:30:05,DT,2.3 SAS,函数,函数是一个功能模块,包括三个要素:,函数名、参数、返回值,函数的作用:根据参数计算函数值并返回。,例:,y=SUM(1,2,3);,函数名:,SUM,参数:,1,2,3,返回值:,6,(函数运算结果),参数格式:,用逗号分割:,SUM(x1,x2,x3),参数为常量、变量,用简化形式:,SUM(OF x1-x3),参数为变量,用列表形式:,SUM(OF x1 x2 x3),参数为变量,2.4 SAS,操作符(运算符),算术操作符,*,/+,比较操作,=2,;,(,结果,y,值为,1),x=,“,ABC,”,“,ABD,”,;,(,结果,x,值为,0,),x=,“,ABCDE,”,“,ABD,”,;,(,结果为,0,),逻辑操作符,&(AND)|(OR)(NOT),作用:进行逻辑运算,结果仍为逻辑值,真(,1,),假(,0,),SAS,表达式,用操作符将常量、变量、函数等连接起来进行运算,最终会产生一个值(表达式的值)。,运算优先级:算术,比较,逻辑,例:,X+1,3,LOG(Y),PART/ALL*100,1-EXP(N/(N-1),AGE100,STATE=NC,丨,STATE=SC,2.5,数据步流程,数据步由,DATA,语句开始,对输入数据中的每一观测,都执行数据步一遍,当执行到数据步的最后一条程序语句(一般是,Cards,语句)时,将变量的当前值写入数据集中。然后,SAS,程序再回到数据步的第一条语句继续执行,读取下一个观测。就这样不断循环读取观测,从而建立起完整的数据集。,一般来说,数据中有几行数据,则数据步执行几遍,建立的数据集中则有几个观测。,例:,DATA FITNESS;,INPUT NUM SEX$AGE WEIGHT HEIGHT;,RATIO=WEIGHT/HEIGHT;,CARDS;,1001 F 19 47 1.69,1002 M 20 55 1.74,1003 F 18 49 1.66,;,RUN;,Num Sex Age Weight Height,Ratio,1001 F 19 47 1.69 27.8107,1002 M 20 55 1.74 31.6092,1003 F 18 49 1.66 29.5181,
展开阅读全文