第2章-SAS编程语言课件.ppt(77页)
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第2章-SAS编程语言课件.ppt(77页)》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAS 编程 语言 课件
- 资源描述:
-
1、第第2章章 SAS编程语言编程语言SAS语言vSAS提供了一种完善的编程语言。类似于计算机的高级语言,SAS用户只需要熟悉其命令、语句及简单的语法规则就可以做数据管理和分析处理工作。因此,掌握SAS编程技术是学习SAS的关键环节。v注意:SAS语句不区分大小写。SAS编程语言的基本结构vSAS编程语言的结构比较简单,主要由两个步骤,即DATA Step(简称DATA 数据步)和PROC Step(简称PROC 过程步)组成,data步产生SAS数据集,proc步处理SAS数据集内的数据并输出结果或产生新数据集。v程序中的每一行以“;”号表示输入结束,其语句的语法与常见的高级语言语法大体相似,同
2、样包括关键词、运算符号、函数及其参数等基本要素。SAS编程语言的简图vTitle“”/*设置标题*/vLibname;/*定义永久数据库*/vData;/*DATA 步*/v;vRun;vProc;/*PROC步*/vRun;DATA步和PROC步之间用“run;”或“;”隔开SAS逻辑库v逻辑库是数据步(data)和过程步读取数据集或关系数据库中的表或存储路径下对应文件的桥梁。v逻辑库定义:逻辑库是SAS用来指向数据集合对应的物理路径,用来告诉SAS数据集或数据文件存储到什么位置的一个逻辑指示。临时逻辑库与永久逻辑库v生成一个数据集而不指定逻辑库,SAS默认其存在临时逻辑库Work下面,退出
3、SAS系统时Work逻辑库的数据集会被自动删除,这个新生成的数据集没有保存。v人为建立的逻辑库是永久数据库,退出会话后永久逻辑库所对应目录下的数据集仍保留在对应物理位置。SAS自带逻辑库vMaps逻辑库:vSashelp逻辑库:存储SAS帮助数据集合数据 的永久逻辑库。vSasuser逻辑库:存储用户文件的逻辑库。vWork临时逻辑库:存储临时数据集,退出会话后数据集被自动删除。SAS定义逻辑库语法vLibname 逻辑库名 物理路径;vLibname:定义逻辑库的关键字。v逻辑库名:给逻辑库起的名字,长度不超过8字节。v引擎:可选项(默认为缺失),如果连接其他引擎如ORACLE、DB2、AC
4、CESS等数据库引擎,就要加上这个引擎名告诉SAS连接该库引擎。v物理路径:数据集或数据文件存储的位置。v;(分号):结束符标志 逻辑库建立实例v例1:libname ycr d:test;v例2:libname load oracle user=chiran passord=chiran path=orcl;load:定义的逻辑库,oracle:连接的数据库引擎,user=登录数据库的用户名,password=登录数据库的密码,path=登录的数据库实例.逻辑库引用v建立逻辑库的目的就是引用逻辑库所对应的数据集。在数据步或过程步中通过逻辑库来调用所需要的数据集。v逻辑库的引用方法:(1)引用
5、非临时逻辑库的数据集名字使用两级命名方式逻辑库名.数据集名。(2)引用临时逻辑库(work)的数据集时,可直接使用数据集名。SAS表达式 v表达式是由一系列算符和运算对象形成的一个指令,它被执行后产生一个目标值。运算对象是变量和常数。表达式分为简单表达式(用一个算符)和复合表达式(使用多个算符)。v复杂表达式运算次序的准则:v在括号里的表达式先计算。v较高优先级的运算先被执行。v对于相同优先级的算符,左边的运算先做SAS变量vSAS变量有两种类型:数值型和字符型。v命名规范:v(1)SAS中变量的命名规范以字母(a,b,)或下划线“_”开始,后面的字符可以是数字、字母或下划线,最长32字符。字
6、母不区分大 小写。v(2)定义的变量不能使用系统保留的名称,如“_all_”、“_N_”、“_ERROR_”、v“_INFILE_”、“_CHARACTER_”等,(3)不能使用特殊字符(如%、&、#)和空格。变量赋值v(1)在数据步(data step)中通过Input语句将外部文件中的数据、cards或datalines后面的输入数据赋值给v变量。v(2)在数据步中直接给变量赋值。v(3)用Infile语句获取外部数据文件,在input语句中定义字段变量。v【提示】input语句默认读入的字符变量为8字节,超过8字节要用length语句先定义变量并指明长度。v【注意】input语句和len
7、gth语句中定义的字符变量要加$.变量类型转换规则v(一)字符型转换为数值型v(1)字符型变量和数值型变量做运算或比较运算时,字符型变量自动转换为数值型变量。v(2)字符型变量赋值给数值型变量时,字符型变量自动转换为数值型变量。v(二)数值型转换为字符型v(1)数值型变量赋值给字符型变量时,数值型变量自动转换为字符型变量。v(2)数值型变量和字符型变量做字符连接时,数值型变量自动转换为字符型变量。v(3)数值型变量用在字符处理函数中时,数值型变量自动转换为字符型变量。宏变量v宏变量与其他语言中定义的变量意义一样,在程序的其他地方可以引用。v定义宏变量语法:%let 宏变量名;v%let:定义宏
8、变量的关键字。v宏变量名:任意起的变量名,要符合变量命名规则。v=赋值:可选项,可直接赋值,也可通过其他语句赋值。v定义一个不赋值宏变量:%let v_name;v定义一个赋值宏变量:%let v_dir=d:test;v注意:定义多个宏变量,要用空格分开。常量v字符型常量:(1)一般的字符型常量用单引号或双引 v 号括起来,效果一样。v (2)如果字符常量中包含单引号,外面 v 用双引号括起来;如果字符常量中包v 含双引号,外面用单引号括起来。v数值型常量:类型为数值的常量。v日期型常量:包括日期(后面加字母d)、时间(后面 v 加字母t)和日期时间(后面加字母dt)三v 种类型,且要用单或
9、双引号括起来。v十六进制常量:不常用。数组v数组(array):同一类型数据用同一方法处理的数据。v语法格式:array 数组名 m v;varray:定义数组的关键字。v数组名:定义数组的名字。vm:m为数据元素的个数;v:可选项,数组为字符类型时才有此项。v:可选项,变量名的列表。v【提示】临时数据不保存数据集,数据集为空,只做临时处理数据用。SAS操作符vSAS语言的操作符包括v算术运算符:实现对数值类型的数据进行算术运算。v比较运算符:实现比较运算符v逻辑运算符:实现逻辑运算,计算结果只有两种v 值真或假v字符串连接:实现字符串的拼接。SAS程序 v由一系列SAS语句组成一个SAS程序
10、。SAS程序中的语句可分为两类步骤:DATA步和PROC步。这两个步骤是所有SAS程序的模块。通常用DATA步产生SAS数据集,而用PROC步对SAS数据集内的数据进行分析处理并输出结果。PROC步要求SAS从过程中调出一个过程并执行这个过程,通常用SAS数据集作为输入。SAS程序示例vdata whb.phones;input name$phone room height;cards;rebeccah 424 112 1.5648carol 450 112 5.6235louise 409 110 1.2568gina 474 110 1.3652mimi 410 106 1.6542ali
11、ce 411 106 1.6985brenda 414 106 1.3698brenda 414 105 1.8975david 438 141 1.6547betty 464 141 1.5647holly 466 140 1.5624;proc print data=phones;run;DATA步入门 vSAS的数据步以DATA语句开始,用于创建和处理数据集。DATA语句以关键字“data”开始,格式如下:vdata 数据集名;v例如:data a.case;将创建在库a中名为case的SAS数据集,语句执行后你可在与库a对应的目录下看到刚刚建立的数据集文件case。vDATA语句所指定
12、的数据集,一般都是以“库名.数据集名”的格式出现的,也可以单独的“数据集名”出现,此时的数据集系统默认为是临时库中的数据集,退出系统后将会被删除。DATA步入门v直接输入方式:就是用SAS语句输入数据来产生SAS数据集的过程,一般形式为:v DATA 语句;v Input 语句;v (用于DATA步的其它语句)v Cards;v 数据行v ;DATA步入门v从外部文件读入数据集。数据若已经包含在某个外部文件(文本文件或数据文件)中,可用此方法输入数据到数据集文件中。在以上介绍的data语句后,写入以下语句:vinfile 外部文件的所在位置及名称 选项;vinput 变量名1变量名2 变量名n
13、;vinfile语句用于从外部文件读入数据,必须出现在input语句之前。它的功能是指定一个包含原始数据的外部文件。DATA步入门v从已建立的SAS数据集中产生新的数据集。如果用户从已经建立的SAS数据集中抽取部份变量或数据来形成新的SAS数据子集,可在DATA步中通过SET命令来完成。DATA步语句及其类型 v文件操作语句v运行语句v控制语句v信息语句 文件操作语句 v用于输入数据集或者从这个DATA步输出文件操作语句语句的作用及意义Data告诉SAS开始DATA步,并开始创建一个SAS数据集Input描述数据行或外部输入文件上的记录Cards标识数据行的开始Put描述用SAS输出的这些行的
14、格式By规定数据集被分组处理,使用by变量对分组进行定义Set从一个或几个已存在的SAS数据集中读观测Merge从两个或两个以上的SAS数据集中合并观测为单个观测Inflie识别外部文件,包含DATA步将读入的原始输入数据运行语句 v使得用户可以创建或修改变量,或者选择一部分观测来创建数据集 文件运行语句语句的作用及意义Delete从正被创建的数据集中删除观测Stop停止产生当前的数据集Where在进入Data步之前选择观测Output产生新的观测Remove从某个SAS数据集中删除一个观测Replace在相同的位置上替代观测控制语句 v对一些确定的观测跳过一些语句,或者改变被执行语句的次序,
15、实现从程序的一部分转移控制到另一部分 文件控制语句 语句的作用及意义Do建立一组语句,它能够作为一个语句去执行End标记一个DO组或Select组结束Select有条件地执行几个SAS语句中的一个Go to使得SAS跳到本程序步带有标号的语句,并从这里继续执行If then/else有条件地执行一个SAS语句选择控制语句 vIf语句语法格式:If 条件表达式 then 执行语句;v ;vIf:选择语句关键字。v条件表达式:可以取比较运算符组成的语句或v 逻辑运算符号组成的语句vthen:选择语句关键字,条件表达式的条件 成立则执行then语句后面的语句。可选项,如果If 语句条件不成立时,有e
16、lse语句就执行else语句后面的语句。选择控制语句 vIf 比较运算符号组成的语句;v比较运算符号组成的语句;比较条件判断语句。v功能:对数据集进行过滤。选择控制语句 vSelect语句 v语法格式:vSelect ;v when(条件表达式)执行语句;v;vSelect:语句关键字vWhen:语句关键字vOtherwise:可选语句,在上面情况都不成立时执行otherwise语句中的语句。循环控制语句 vDo while循环语句v语法格式:do while(条件表达式);v 执行的SAS语句;v end;vDo until循环语句v语法格式:do until(条件表达式);v 执行的SAS
17、语句;v end;循环控制语句 vDo to循环语句v语法格式:vDo 开始变量值 to 终止值;vBy 每次增加量;vBy 语句中指定循环增量,默认为1,省略此项时取默认1递增。格式修饰符:v(1):(冒号)格式修饰符:从非空格开始读取变量所对应的数据,直到满足以下任意情况。v遇到下一个空格列。v对应变量所定义的长度已经读满。v数据行结束。v【提示】对于字段列对应的数据大小不定的加冒号修饰符号,可以正确读取数据,防止错读列。格式修饰符&v(2)&(取符号)格式修饰符:修饰所读取为字符型的列数据中含有一个或一个以上空格的字符数据。SAS中默认空格为字段分隔符,要想保留空格,必须在定义的字符列加
18、格式修饰符,而它后面列的数据必须以两个或两个以上的空格分隔。格式修饰符 v(3)格式修饰符:修饰所读取对应列包含单引号、双引号或分隔符的字符列,这样的字符数据要加格式修饰符。指针控制读取v相对于其他编程语言而言,SAS在读取数据时也是通过SAS的指针控制符来控制读取数据的。指针控制符分为行指针和列指针,下面分别介绍这两个控制符在数据处理中的应用。列指针控制符和列控制符v语法格式:nv:列指针标志符号。vn:整数类型,指明列的开始位置。v语法格式:n1-n2vn1:列开始位置,正整数值。vn2:列结束位置,正整数值。单个符号应用v:input 语句中单个“”行控制符号,可以让指针控制在当前行,当
展开阅读全文