SAS 编程基础_第1页
SAS 编程基础_第2页
SAS 编程基础_第3页
SAS 编程基础_第4页
SAS 编程基础_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.1 SAS语言组件1.1.1 SAS文件使用SAS时候会碰到不同类型的文件,如SAS数据集、SAS目录册,这些由SAS创建、储存、管理的文件就是SAS文件。所有的SAS文件都保存在SAS逻辑库中。最常用的SAS文件就是SAS数据集和SAS目录册。1.1.2 SAS外部文件SAS不能直接识别的数据文件称之为外部文件,外部文件一般用于储存数据。外部文件一般用来储存以下内容:· 要读入SAS数据文件的原始数据;· SAS程序语句· 过程步输出1.1.3 DNMS文件SAS软件可以和其他数据库产品进行数据文件转换。比如数据文件方面使用最广泛的DBMS(database

2、 management system)数据库系统文件。1.1.4 SAS语言元素SAS语言由语句、表达式、选项、格式,以及其他编程语言名称类似的函数组成:SAS语句有两种语句:· 数据步· 过程步数据步是一组语句组合,可以进行以下操作:· 从外部文件读取数据· 将数据写入到外部文件中· 读取SAS数据文件和视图· 创建SAS数据文件和视图过程步用来对SAS数据集进行分析和产生报表。比如对数据集进行分析、画图、查询和打印等操作。1.1.5 SAS宏工具BASE SAS 软件包括SAS宏功能,可以用来客户化以及拓展SAS程序,减少重复代码

3、的输入。宏就是包含被编译的宏程序语句和文本的SAS文件。可以使用宏自动的生成SAS语句和命令,在日志中写入信息,建立和改变宏变量的值。1.2 SAS文件系统1.2.1 逻辑库SAS逻辑库由一组SAS文件组成。SAS软件系统的信息。SAS软件系统的信息组织有两层,第一层是SAS逻辑层,第二层是SAS文件。SAS逻辑库是一个逻辑概念,本身不是物理实体,它对于的实体是操作系统下的一个文件夹或几个文件夹中的一组SAS文件。1.逻辑库名与引用SAS文件逻辑库名是SAS名。长度的=不能超过8B 。如:ResDat建立SAS逻辑库的方法:· 用菜单操作;· 用LIBNAME语句语句格式:

4、LIBNAME libref <engine> 'SAS-data-library'语法说明:LIBNAME :逻辑库名libref <engine> 引擎名称'SAS-data-library' 逻辑库对应的物理地址2.临时库和永久库临时逻辑库是指它的内容只在启动SAS时存在,一旦退出SAS时内容完全被删除。系统默认的临时逻辑库为WORK,引用临时库WOR中文件时,可以不加库名WORK永久逻辑库是指它的内容在SAS关闭对话之后仍旧保留,直到再次修改或删除。SAS系统中除了WORK以外的逻辑库都是永久库。3.库引擎库引擎的功能包括:

5、83; 读取和写入数据· 列出库中的文件· 删除和重命名文件SAS通过不同库引擎读写不同格式的文件。每个SAS引擎都有着自身的运行特性。· 运行由其他版本SAS软件生成的文件;· 读取由其他软件生成的数据文件;· 存储和访问硬盘或者磁带上的文件;· 决定文件中的变量和观测如何放置;· 将文件从物理位置地址读取放入到内存中;· 在不同的操作系统之间传输SAS文件1.2.2 数据集1.数据集分类数据集有两类:· SAS数据文件(同时描述信息和存储数据值)· SAS数据视图(不实际存储数据,只包含表的

6、描述信息以及一组用来读取数据的查询语句)以上两个数据文件在同一级目录或逻辑库下时不能同名。2.数据集构成· 描述信息· 数据值SAS数据集的一行被称之为观测,一列被称之为变量,包括一组有着相同的特征的值。SAS使用缺失值表示一个观测中某个变量值得缺失。1.3.3 数据文件SAS数据文件是包含描述信息和数据值的SAS数据集。一般来说,SAS数据文件分类如下:· 普通的SAS数据文件:SAS格式的数据文件· 接口数据文件:以其他数据软件格式储存的数据的数据文件。· 数据文件实际储存数值,视图只是包含表的描述信息以及一组用来读取数据的查询语句。

7、83; 数据文件是静态的,视图是动态的。· SAS数据集可以保存的在磁带或者其他的存储媒介上,但是数据视图由于其他动态特性,不能保存在磁带上。· SAS数据视图是只读性的,不可以修改,而一些SQL视图可以被修改。· SAS数据文件可以被压缩,而视图则不可以。1.2.4 数据视图1.数据视图定义SAS数据视图就是用来从其他文件中读取数据的一种SAS文件。SAS视图一般分为两种:· Native View ,由数据步或者SQL过程创建· Interface View,由SAS/ACCESS软件创建,可以读取其他数据库管理系统(DBMS)的中的数据库

8、。2.何时使用视图数据视图占用额外的运行时间,数据文件占用额外的硬盘空间。3.数据视图的使用优势· 可以使用连接多个表的视图来合并数据集· 数据视图可以节省大量的空间· 数据视图可以保证读取的数据集永远都是新的。· 更改一个数据视图只需要改变这个视图的查询语句· 使用SAS软件,视图可以将多个不同的主机上的数据文件整合,以整体的形式呈现。4.数据步视图数据步视图包含用于多个数据源中读取数据的数据步程序,这些数据源包含以下几种:· 原始数据文件· SAS数据文件· PROC SQL视图· SAS/ACCES

9、S视图· DB2、ORACLE或者其他DBMS数据语法格式:5. PROC SQL视图PROC SQL视图为一个带有名称的PROC SQL 查询。可以读写的数据源同数据步视图。例如:1.2.5 存储编译的DATA步程序1.定义存储编译的DATA步程序是包含已经被编译过DATA步程序并储存在SAS逻辑库中的程序文件。文件类型是程序。2.创建存储编译的DATA步程序语句格式:语法说明:data-set-name 数据集名称stored-program-name 存储编译的DATA步程序名称password-option 给DATA步程序名称分配一个密码source-option 存储或编

10、译源码1.2.6 其他SAS文件1.表词典2.目录册文件1.3 SAS语言元素主要的语言元素包括:· 数据集选项· 输出和输入格式· 函数和CALL子程序· 应用响应测量宏· 语句· SAS系统选项· 表达式1.3.1 数据集选项括号中的数据集选项可以对数据集进行如下操作:· 重新命名变量;· 选择需要的观测;· 输出数据集中保留或删除的变量;· 数据集加密;语句格式:1.3.2 输入和输出格式输出格式format是SAS用来确定如何输出或写出数据值的指令,用FORMAT控制数据值在输

11、出时使用的格式,如YYMMDD10,格式将一个日期数输出读入到新的数据集中。输出格式informat是SAS用来确定如何将数据读入变量的指令。语句格式:<$>format<w>.<d><$>format<w>.<d>格式说明:$ 指定为字符格式,如果该项空缺,则默认是数值格式format 规定为有效的SAS输出格式informat 规定为有效的SAS输入格式w 设定输入输出的长度,一般来说是数据所占的列的数目d 设定数据值数据中华小数点的位数1.3.3 函数和CALL子程序1.函数定义SAS哈数对数据参数进行计算处理并返回

12、一个值。在BASE SAS软件中,可以在数据步程序语句、WHERE表达式、宏语句、SQL语句以及一些统计过程的语句中的使用函数。2.CALL子程序定义CALL子程序用来改变变量值,或执行一些系统功能,CALL子程序类似于函数,但是不能再赋值语句使用,所有的SAS CALL子程序都只能被CALL语句使用。也就是所有的CALL子程序都要放在CALL关键词后。1.3.4 语句SAS语句就是一系列关键词、SAS名称、算符,以及特殊字符的组合。所有的SAS语以分号结尾。SAS语句一般分为 数据步语句 与 过程步语句 ,以及可以用在SAS程序任何地方的全局通用语句。KEWWORD parameter .

13、<item1|item2.|itemn>options;关键词 参数. <项目1或项目2.项目n>选项;其中:· 粗体表示必须按显示形式书写的关键词;· 一般字体表示用户提供的信息;· < >表示括号内的信息可选;· | 表示任选1.可执行数据步语句和声明数据步语句2.全局通用语句1.3.5 SAS系统选项系统选项用来控制SAS的运行方式,如SAS系统启动、软硬件的连接,SAS程序的运行等。语句格式:OPTIONS options(s):option设定一个或多个系统选项,任何系统选项都有一个默认设置。2.4 表达式表

14、达式由一系列操作符和操作对象构成,产生一个目标值。使用表达式可以对变量作变换和赋值,创建新变量,计算新数值以及控制条件语句的运行等。操作对象有:· 变量;· 常数。操作符包括:· 算术算符· 比较算符· 逻辑算符· SAS函数· 括号例 2.7 表达式里允许有空格Y=X+10;Y= X+ 10; /*例中,两语句等价*/2.4.1 SAS常数SAS常数是SAS系统可以识别的一些固定值。SAS常数值包括:· 数字;· 引号括起来的字符串;· 其他特殊记号SAS常数的5种类型:· 数值常数

15、;· 字符常数;· 日期时间数值常数;· 十六进制数值常数和字符常数;1.数值常数数值常数的表示格式包括:· 标准格式: 1,01,+1,-1,1,1· 科学计数法:1,1e11,1.2e· 十六进制格式:1ex,12x,9x2.字符常数字符常数通常由单引号括起来的132767个字符串组成。如果字符常数内含有引号,引用时,要么它的引号用两个连续的单引号,要么用一个双引号。3.日期时间常数将日期时间值表示为常数时,要使用相应的格式值。格式值带单引号,后面跟一个D(日期),T(时间),DT(日期时间)。2.4.2 SAS算符1.算术算符表

16、达式中有一个运算对象是缺失值时,结果也是缺失值。运行结果:2.比较算符比较准则:· 数值和字符都可以· 结果为真赋值为1,假赋值为0;· 字符值从左到右逐个按ASCII码排列顺序进行比较· 缺失值参加比较时。它比任何有效值都小。if x<y then x=5;else c=12;3.逻辑运算符4.其他运算符5. 运算次序· 先计算括号里面的表达式· 先执行较高优先级的运算· 相同优先级的算符,先执行左边的运算。2.5 SAS变量2.5.1 变量类型SAS变量分为数值变量和字符变量1.数值变量数值变量是SAS系统以浮点(

17、floating-point)方式存储的数据,数值变量包括日期和时间。2.字符变量字符变量可以由阿拉伯字母、数字09以及其他一些特殊的字符组成。2.5.2 变量属性SAS变量的属性包括长度、输入输出格式和标签,未设定属性的变量在他们第一次出现时由系统给出。2.5.3 变量列表以及其缩写规则许多的SAS语句都需要规定变量,即按顺序列出变量名。了解变量列表的缩写规则,会克服复杂变量引用带来的麻烦。SAS程序中规定了完整的变量列表后,就可以使用缩写的变量列表。2.5.4 创建变量DATA步骤创建变量的方式包括:· 使用赋值语句;· 使用INPUT语句;· 使用FORMA

18、T或INFORMAT语句;· 使用LENGTH语句;· 使用ATTIRB语句1.使用赋值语句如果等号左边的变量不存在于数据集中,则赋值语句会产生一个新的变量,在没有规定明确格式的情况下,新的变量格式采用系统默认的格式。data a;x=1;run; /*数据集a中有个变量x,值为1*/2.使用INPUT语句例:3. 使用FORMAT或INFROMAT语句2.5.5 变量类型转换1.字符自动转换为数值2.函数INPUT将字符转换为数值3.数值自动转换为字符4.函数PUT将数值转换为字符2.5.6 自动变量自动变量是由数据步语句自动创建的。这些自动变量被加入到程序数据向量(PD

19、V)中,但是并不输出到数据集中,自动变量在重复过程中被保留,而不是被设定为缺省。2.6 错误类型与处理SAS系统能够检查出错误类型有:· 句法错· 词义错· 运行错· 数据错· 与宏有关的错SAS系统提交含有错误的程序后,LOG窗口会显示的信息有:· 出错的词;· 错误的可能位置· 对错误的说明2.6.1 句法错句法(SYNTAX)错误是由程序含有不符合SAS语言的规则引起。最常见的语法错误有:· 关键词拼写错误· 遗漏RUN语句· 引号或括号不配对· 选项无效日志信息:2.

20、6.2 词义错词义错的类型有:· 变量名拼写错误· 不正确的引用log运行日志:2.6.3 运行出错经常运行出错的情况有:· INPUT语句与数据不匹配· 非法的数学运算· 对BY组分析处理时没有相应的分类排序· 引用不存在的数组元素· 用INFILE和FILE语句打开或关闭文件时出错· 函数的自变量不合法LOG窗口显示的运行错误信息包括:· 一个出错信息· 存储在输入缓冲区中的值· 发生错误程序数据向量的内容· 用NOTE揩油的一个注解日志信息:2.6.4 数据错当数据不适

21、合的相应的SAS语句时,就会报错。带有INPUT语句的SAS程序可能产生数据错。LOG窗口显示的数据错信息包括:· 一个注释描述这个错误· 存储在输入缓冲区中的值· 存储在程序数据向量里的值日志窗口信息:2.7 SAS输出1.SAS日志SAS日志信息包括:· 提交的运行的程序语句· 程序创建的数据集· 程序运行过程中的注释、警告或错误信息;· 每个数据集包括的变量和观测的个数;· 每个步骤运行的时间2.程序结果绝大多数SAS过程步和一些数据步的结果,是可以发送文件,或者打印出来,使用ODS的话,还可以将结果输送到网页中。3.SAS控制台日志激活SAS日志后,当系统初始化或结束重大错误时才会用到SAS控制日志。2.8 SAS程序SAS程序由多个SAS语句构成,SAS程序中语句可以分为两类步骤:· 数据步· 过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论