欢迎来到天天文库
浏览记录
ID:41033373
大小:75.00 KB
页数:9页
时间:2019-08-14
《第二章 SAS编程基础》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第二章SAS编程基础第一节SAS逻辑库2.1.1什么是SAS逻辑库SAS逻辑库是SAS系统对计算机文件夹或数据库系统的一个指向性逻辑标识,通过该标识,可以指向一个物理文件路径,或指向一个数据库实例。常用的SAS逻辑库有sasuser、saswork、sashelp等。2.1.2创建(定义)SAS逻辑库LIBNAME逻辑库名<引擎>“物理路径”;语法解读:Libname:定义逻辑库命令逻辑库名:即给逻辑库起的名字,字符长度不超过8B。引擎:可选项,如果连接数据库,就要给出连接的相应数据库的引擎名称。物理路径:就是实际的文件夹文理路径
2、。例子:Libnametestlib“c:datatest”;Libnamezhangsan“/home/user/data/”;Libnameoradboracleuser=user1password=xxxpath=orcl;LibnamemylibACCESS“d:student.mdb”;2.1.2逻辑库的引用方法:逻辑库名.数据集名例:第二节常量、变量与观测值2.2.1观测值描述单一整体,如个别人、一个实验动物、一年、一个地区某些特性的一系列数据值称为观测值,又称观察。2.2.2变量在SAS数据集中,每一个观测值是
3、由各个变量的数据值组成,在数据集中每一列数据是一个变量。1.命名SAS变量名和其他名称如数据集名等的命名规则都相同,它可以多至32个字符长,第一个字符必须是字母(A,B,C,….,Z),或者是下划线(_),后面的字符可以是数字或下划线。空格不能出现在SAS名中,特殊字符(如$,@,#)也不允许在SAS名中使用。SAS系统保留了一定的名称作为特殊的变量名,这些名称以下划线开始和结尾。如_N_和_ERROR_等。2.变量特性SAS变量有两种类型,数值型和字符型。字符型变量在名后用一“$”号来表示。除了他们的类型外,SAS变量还有下列特
4、性:长度、输入格式、输出格式和标记。变量的长度特性,是指在SAS数据集中用以存储它的每一个值的字节数。字符变量缺省长度是8(为了存储长度与缺省值不同的变量,需使用LENGTH语句)。变量的特性,或者明确地说明,或者在它们首次出现时的上下文中给出定义。3.变量赋值字段变量的input语句赋值;直接赋值;宏变量直接赋值;datahuman;lengthsfz$18.;inputname$sex$sfz;cards;ZhangM31011019800101001LiF31010919720508002;run;datatest;x=2;
5、y=3;z=x+y;run;libnametest"/home/net/sasuser.v93/";%letfile1="/home/net/sasuser.v93/human.txt";datatest.human;infile&file1;lengthsfz$18.;inputname$sex$sfz;run;4.变量清单的简化表示在SAS程序中定义了完整的变量清单后,就可以在后面许多语句中使用缩写变量清单形式。名称形式缩写意义形如:X1,X2,…Xn的带有序号的名称X1-Xn从X1到Xn的所有变量形如XPA*的名称范围X-A
6、从X到A的所有变量X-NUMERIC-A从X到A的所有数值变量X-CHARACTER-A从X到A的所有字符变量特殊SAS名称_NUMERIC_所有数值变量_CHARACTER_所有字符变量_ALL_所有变量例如:INPUTNAME$VARlVAR2VAR3VAR4VAR5VAR6;也可以写成:INPUTNAME$VARl-VAR6;注意字符型变量NAME不包含在这个缩写清单中,有序号的变量不必全部列出,这些变量要求类型相同,或全是数值型的或全是字符型的。5.缺项值当一个变量由于某种原因没有得到(可能没有观测到,或由于数据错误,或由
7、于计算错误),称该值为缺项值(又称缺失值).在SAS中用“.”表示。6.变量的类型转换SAS变量属于弱类型的,许多场合会自动转换。转换的规则:(1)、字符型自动转换为数值型,当:Ø字符型变量和数值型变量做运算;Ø字符型变量赋值给数值型变量;,(2)、数值型自动转换为字符型,当:Ø数值型变量赋值给字符型变量;Ø数值型变量与字符型变量做字符连接运算;Ø数值型变量用在字符处理函数中;datatest;x=2;y="3";z=x+y;procprint;run;datatest;x=2013;y="Sep.";z=y
8、
9、x;procpri
10、nt;rundatatest;x=12345678;y=substr(x,6,3);procprint;run;datatest;x=12345678;y=substr(compress(x,""),6,3);procprint;run;2.2.3
此文档下载收益归作者所有