收藏 分享(赏)

数据统计——SAS编程基础 一.doc

上传人:精品资料 文档编号:8049167 上传时间:2019-06-06 格式:DOC 页数:14 大小:51.50KB
下载 相关 举报
数据统计——SAS编程基础 一.doc_第1页
第1页 / 共14页
数据统计——SAS编程基础 一.doc_第2页
第2页 / 共14页
数据统计——SAS编程基础 一.doc_第3页
第3页 / 共14页
数据统计——SAS编程基础 一.doc_第4页
第4页 / 共14页
数据统计——SAS编程基础 一.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、数据统计SAS编程基础一数据统计SAS编程基 础(一) 2011年10月09 日登录网站,下载本书样本 数据 ResDat。ResDat为本书样本数据库,包括股票、固定收益等相关 数据 集。 运行本书程序前,需要创建以本书样本数据库(ResDat)为 物理 地址的SAS逻辑库ResDat。 创建“ResDat”SAS逻辑库操作如下。 右击SAS资源管理器,选择VIEW,在新建逻辑库菜单的“名称”栏内填写“ResDat”。选择“启动时启用”,在“路径”栏浏览样本数据库(ResDat )为 物理 地址,单击“确定”按钮。 本书的许多结果 数据 集将存储在SAS逻辑库ResDat中。 2. 1 SA

2、S语言组件 2. 1. 1 SAS文件 使用SAS时会碰到许多不同类型的文件,如SAS 数据 集、SAS目录册等,这些由SAS创建、储存、管理的文件就是SAS文件。所有的SAS文件都保存在SAS逻辑库中。 最常用的SAS文件就是SAS 数据 集,另外一个是SAS目录册。SAS目录册包含各种类型的信息。比如功能键的设定等。SAS编辑器可数存储程序文件.立件类型一节会对主要的SAS文件作详细说明。 2. 1. 2 SAS外部文件 SAS不能直按识别的 数据 文件称为外部文件。外部文件一般用于储存 数据 。 外部文件一般用来储存以下内容: 要读入SAS 数据 文件的原始 数据 ; SAS程序语句;

3、过程步输出。 2.1.3 DBMS文件 SAS软件可以与其他数据库产品进行 数据 文件转换。例如 数据 文件方面使用最广泛的DBMS(database Magement system)数据库系统文件,就可以实现与SAS 数据 集之间的转换。 2.1.4 SAS语言元素 SAS语言由语句、表达式、选项、格式和函数组成。 SAS有两种语句: 数据 步; 过程步。 在SAS中,通过 数据 步和过程步来使用SAS语言的元素。这两种语句在后面都会有详细的介绍。 数据 步是一组语句组合,它可以进行以下操作, 从外部文件中读取 数据 ; 将 数据 写入到外部文件中; 读取SAS 数据 文件和视图; 创建SA

4、S 数据 文件和视图。 过程步用来对SAS 数据 集进行分析和产生报表。比如对 数据 集进行分析、画图、查询和打印等操作。 在 数据 步和过程步外,可以使用SAS的全局通用语句和系统选项语句。 2.1.5 SAS宏工具 BASE SAS软件包括SAS宏功能,这是一种强大的编程工具,可以用来客户化以及拓展SAS程序,减少重复代码的输入。宏就是包含被编译的宏程序语句和文本的SAS文件。可以使用宏自动地生成SAS语句和命令,在日志中写入信息,建立和改变宏变量的值。 2. 2 SAS文件系统 2.2.1逻辑库 SAS逻辑库由一组SAS文件组成。SAS软件系统的信息组织有两层,第一层是SAS逻辑库,第二

5、层是SAS文件。SAS逻辑库是一个逻辑概念,本身不是 物理 实体,它对应的实体是操作系统下的一个文件夹或几个文件夹中的一组SAS文件。 在不同的操作系统下,SAS管理、组织、定位SAS文件的原理和该操作系统是一样的。例如在Windows这样的以目录为基础的操作系统中,SAS逻辑库就是一组储存在同一目录下被同一引擎访问的文件,如图2.1所示。其他文件也可以存放在该目录下,但只有能被SAS识别的文件才能显示在逻辑库中。 1. 逻辑库名与引用SAS文件 逻辑库名是SAS名,长度不能超过8.3。如SAS逻辑库:ResDat、SASHELP、SASLISER、WORK等。 建立SAS逻辑库的方法: 用菜

6、单操作; 用LIBNAME语句。 语句格式: LIBNAME libref SAS-data-library 语法说明: libref:逻辑库名。 SAS-data-library:逻辑库对应的 物理 地址。 engine:引擎名称(缺失时为默认引擎)。 例2.1 用LIBNAME语句创建SAS逻辑库。 libname ResDat D:ResDat; 例中,创建SAS逻辑库RESDAT,对应 物理 文件夹为D:ResDat。 多个文件夹创建一个SAS逻辑库: libname a (D:Resbd, D:ReSfin); 例2.2 引用非临时库的SAS文件时,必须使用两级命名方式,而引用临时库

7、的SAS文件时,可以直接使用文件名,效果等同于work.文件名。即以如下形式: 逻辑库名.文件名; data=ResDat.ID000001; 例中,引用逻辑库RESDAT下的 数据 集文件IDX000001, 2. 临时库和永久库 临时逻辑库是指它的内容只在启动SAS时存在,退出SAS时内容完全被删除。系统默认的临时逻辑库为WORK。引用临时库WORK中文件时,可以不加库名WORK。 永久逻辑库是指它的内容在SAS关闭对话之后仍旧保留,直到再次修改或删除。 SAS系统中除了WORK以外的逻辑库都是永久库。SAS系统自动指定的逻辑库SASHELP、SASUSER和MAPS都是永久库。 3. 库

8、引擎 库引攀是一组规定格式向逻辑库读写文件的内部指令。利用库引擎SAS系统可以直接访问SAS其他版本创建的SAS文件和外部数据库格式的 数据 文件。例如,在SAS 9.1系统下读SAS 6.12生成的文件时用V6库引擎。在SAS系统下读ODBC,BMDP,DB2,ORACLE,Sybase,TERADATA和SPSS等 数据 文件时,要用到相应的库引擎。 每个SAS逻辑库都对应一个库引擎。SAS逻辑库引擎是软件的一个元件,用来组建SAS与SAS逻辑库之间的接口。它用来帮助SAS对文件进行定位,并将SAS可以识别的文件内容呈现出来。库引擎功能包括: 读取和写入 数据 ; 列出库中的文件; 删除和

9、重命名文件。 SAS通过不同的库引擎读写不同格式的文件。每个SAS库引擎都有着自身的运行特性。例如 运行由旧版本SAS软件生成的文件; 读取由其他软件生成的数据库文件; 存储和访问硬盘或者磁带上的文件; 决定文件中的变量和观测如何放置; 将文件从 物理 位置地址读取并放入到内存; 在不同的操作系统之间传输SAS文件。 一般不用关心如何针对不同的文件选择引擎,因为SAS系统一般会自动选择该文件所适用的引擎,当然,如果发出的操作指令该引擎不支持,SAS日志窗口就会显示出错信息,这时就需要选择特殊的引擎来完成该项任务。 2.3 数据 集 1. 数据 集分类 SAS 数据 集有两类: SAS 数据 文

10、件; SAS 数据 视图。 虽然表面上二者看起来很像,但SAS 数据 文件同时描述信息和存储 数据 值,而SAS数据 视图则并不实际地存储 数据 ,后面会讲到SAS 数据 视图其实就是一个查询语句,这个查询语句建立了一个逻辑 数据 集,每次打开SAS 数据 视图就相当于运行了一次查询语句。要注意的是,这两个 数据 文件在同一级目录或逻辑库下时不能同名。 如图2.2所示。Work临时逻辑库下的 数据 文件和 数据 视图,Class是 数据 视图,Class1是 数据 文件。 2. 数据 集构成 SAS 数据 集组成部分包括: 描述信息; 数据 值。 以Class1表的前8个观测为例,如图2.3所

11、示。SAS 数据 集的一行称为一个观测,一个观测行一般就是一个个体的信息。SAS 数据 集的一列称为一个变量,包括一组有着相同特征的值。SAS使用缺失值表示一个观测中某个变量值的缺失。 3. 使用窗口菜单操作 数据 集 编辑和修改 数据 集。 表编辑器(Viewtable)用来浏览、操作SAS 数据 集。 打开表编辑器的方法: 1)直接打开 数据 集(默认启动表编辑器); 2)执行“工具”|“表编辑器”菜单命令,再从表编辑器打开的情况下,单击“文件”|“打开逻辑库下的 数据 集”,如图2.4所示。 3)在命令框键入vt+空格+表名,如vt class。 表的使用模式。 表编辑器有浏览模式和编辑

12、模式。浏览模式是默认的显示模式,图2.5是表编辑器的浏览模式,该模式下无法改动 数据 集,图2.6是编辑模式,该模式下可以修改 数据 集。 图2.5 表编辑器的浏览模式 图2.6 表编辑器的编辑模式 浏览模式切换到编辑模式的方法:在表中任意地方右击,在弹出菜单中选择“编辑模式”。单击“编辑”菜单,在弹出菜单中单击“编辑模式”。如图2.7所示。 要注意的是在编辑模式下,可能会遇到多个SAS进程同时访问和修改同一表中的观测。为了防止出现修改的混乱,编辑模式有两种编辑访问限制,如图2.8所示,一个是默认开启的行级编辑访问,对该行进行锁定。在该行编辑完毕之前,其他进程无法修改该行。另一个就是表级编辑访

13、问,在该表开启编辑模式之后。其他进程无法对该表的 数据 进行修改。 数据 属性的查看。 要查看表或者列的属性,可以直接选择“ 数据 ”菜单中的“列属性”或“表属性”。如图2.9所示。 图2.7 “编辑”菜单 图2.8 “编辑”菜单 图2.9 “ 数据 ”菜单 图2.10 Class表属性 操作列。 选择表中的列,如图2.11中的Age,右击,就会出现图2.11所示的弹出菜单,该菜单可以编辑列的字体、颜色、升降序、列固定、隐藏、查看列描述信息和查看列属性。 列的字体、颜色可以使该列的 数据 显示有特定的字体和颜色。 列的升降序则是以该列对整个表的观测进行升降序排列。 列的隐藏操作可以将一些与目前

14、操作无关的列隐藏起来,而实际上这些列仍然存在。例如,可以将Class表中Age列Height列隐藏起来,如图2.12所示。 图2.11 弹出菜单 恢复刚才隐藏的两个列。选择“ 数据 ”|“隐藏/取消隐藏”,如图2.13所示,左边的Age,Height列在Hidden栏中。若要取消隐藏,单击Age列,单击右箭头按钮,即可将该列取消隐藏。在同一个视窗中,也可以将没有隐藏的列隐藏起来,只要单击在Displayed栏中的列如Name,单击左箭头,即可将Name列隐藏。 图2.12 隐藏列 图2.13 “隐藏/取消隐藏”窗口 当一个表中的列非常多,而有些比较重要的列需要和其他列一同显示,比如一个表中的I

15、D列、Name等,这时就可以采用固定列的方式,通过单击菜单“ 数据”,“固定”,如图2.14所示,选择要固定的列进行固定或释放。这样,这些被固定的列不会随着视窗的移动而发生移动,便于更好地查看 数据 。 图2. 14 “固定列”窗口 2.2.3 数据 文件 SAS数据 文件是包含描述信息和 数据 值的SAS 数据 集。一般来说,SAS 数据 文件分类如下: 普通的SAS 数据 文件:SAS格式的 数据 文件。 接口 数据 文件:以其他 数据 软件格式储存 数据 的 数据 文件。SAS提供对应的引擎来对这些文件中的 数据 进行读取和编写,如Oracle、DB2、Sybase、ODBC、BMDP、

16、SPSS和OSIRIS。虽然 数据 文件与视图文件在应用时没有任何区别,但这两者之间也有一定的差异。 前面已经提到二者最大的不同就是 数据 文件实际储存数值,视图只是包含表的描述信息以及一组用来读取 数据 的查询语句,并不实际存储 数据 。 数据 文件是静态的,而视图则是动态的。因为视图每次打开的时候,就相当于运行了一次查询语句,所以只要其引用的数据源发生了改变,打开的视图就会发生改变,而 数据 文件只有自身被修改时才发生改变。 SAS数据 集可以保存在磁带或其他存储媒介上,但 数据 视图由于其动态特性,不能保存在磁带上。 SAS数据 视图是只读性的,不可以修改,而一些SQL视图则可以被修改。

17、关于如何修改请参见后面的视图文件部分。 SAS数据 文件可以包含审计跟踪文件。SAS审计跟踪功能可以单独建立一个文件,把对该SAS 数据 文件的相关修改记录下来。 SAS文件还可以拥有完整性约束。更新 数据 文件时,完整性约束会自动地检查新的 数据 是否处于要求的 数据 范围内。而SAS视图则只能通过对数据源设定完整性约束才能保持一定的 数据 标准。 SAS数据 文件可以被索引,索引可以使SAS在搜索 数据 的时候速度更快,而SAS视图不能被索引。 SAS 数据 文件可以被加密,而视图则不可以。 SAS 数据 文件可以被压缩,而视图文件不可以。 2.2.4 数据 视图 1. 数据 视图定义 前

18、面已经介绍了 数据 视图的基本概念。SAS 数据 视图就是用来从其他文件中读取 数据 的一种SAS文件。它只包括 数据 集的描述信息,如 数据 类型、变量长度等,再加上如何从其他文件中提取 数据 所要求的信息。如SQL视图文件就包含一个查询语句。 SAS视图一般分为两种: Native View,由 数据 步或者SQL过程创建; Interface View,由SAS/ACCESS软件创建。Interface View可以读写其他数据库管理系统(DBMS)中的数据库,如DB2或ORACLE数据库等。 2. 何时使用视图 数据 视图占用额外的运行时间。而 数据 文件则占用额外的硬盘空间。 数据

19、视图的动态性可以保证 数据 的随时更新。 3. 数据 视图的使用优势 可以使用连接多个表的视图来合并 数据 集。 数据 视图可以节省大量的存储空间。 数据 视图可以保证读取的 数据 集永远都是最新的。 更改一个 数据 视图只需要改变这个视图的查询语句。 使用SAS/CONNECT软件,视图可以将多个不同主机上的 数据 文件整合,以整体的形式呈现。 4. 数据 步视图 数据 步视图包含用于从多个数据源中读取 数据 的 数据 步程序,这些数据源包括以下几种: 原始 数据 文件; SAS 数据 文件; PROC SQL视图; SAS/ACCESS视图; DB2、ORACLE或者其他DBMS 数据 。

20、 语法格式: data 数据 集名称/view= 数据 集名称; 在data步中的最后一个 数据 集名称后加上“view= 数据 集名称”选项,这个选项告诉SAS对程序进行编译,但并不运行,而被编译的程序编码则储存在view后的 数据 视图中。 例2.3创建 数据 步视图。 data Resdat.class1 /view=Resdat.class1; set Resdat.class 日志中信息为: - - 1 data Resdat.class1 /view=Resdat.class1; 2 set Resdat.class1; 3 run; NOTE:DATA STEP视图已保存在文件R

21、esdat.class1中。 NOTE:存储的DATA STEP视图无法在不同的操作系统下运行。 - - 这时在逻辑库Resdat中创建一个叫名称为class1的 数据 视图文件。 5. PROC SQL视图 PROC SQL视图为一个带有名称的PROC SQL查询。它可以读写的数据源同 数据 步视图。 在PROC SQL部分将会详细介绍如何创建PROC SQL视图,这里简单举例,使用SQL语句中的CREATE VIEW语句。 proc sql; create view Resdat.e as select * from Resdat.class; quit; 日志中信息为: - - 4 pr

22、oc sql; 5 create view Resdat.e as select * from Resdat.class; NOTE:SQL视图Resdat. E已定义。 6 run; - - 2.2.5存储编译的DATA步程序 1. 定义 存储编译的DATA步程序是包含已经被编译过DATA步程序并储存在SAS逻辑库中的程序文件。这样下次运行时就不需要再进行编译。它们的文件类型是程序。 注意,存储编译的DATA步程序只适用于DATA步,不能包含全局通用语句。如果包含了这种语句,在储存编译程序的时候,文件并不包含这些全局通用语句,而且SAS日志中不会出现任何警告。 这种程序文件的好处就是可以避免

23、重复输入相同的程序。 2. 创建存储编译的DATA步程序 语句格式: DATA data-set-name(s) / PGM=stored-program-name ); 语法说明 data-set-name 数据 集名称 stored-program-name 存储编译的DATA步程序名称 password-option 给DATA步程序名称分配一个密码 source-option 存储或编译源码 2.2.6 其他SAS文件 1. 表词典 表词典是一个包含多个SAS系统信息的SAS 数据 视图,如表2.1所示。这些信息可以是SAS逻辑库信息、SAS 数据 集信息、宏信息、SAS系统选项信息以

24、及正被SAS对话使用或可以被使用的外部文件的信息。访问表词典的时候,SAS会检查最新的SAS系统统状态并返回所需相关信息,这个过程在每次访问表词典的时候都会重新运行以保证得到的是最新信息。 访问表词典的方法如下: 使用PROC SQL来查询所需要的表词典,这些表存储在DICTIONARY逻辑库中。 使用SAS过程或者是SAS 数据 步语句,或打开SASHELP逻辑库中这些表词典相对应的视图文件。 表2.1 表字典的综合信息 表名 包含的信息 视图 DICTIONARY.CATALOGS SAS目录册及所包含的条目 SASHELP. VCATALG DICTIONARY.COLUMNS 列(或变

25、量)及其特征 SASHELP.VCALUMN DICTIONARY.DICTIONARIES 所有表词典 SASHELP.VACTNRY DICTIONARY.EXTFILES 文件标识名和外部文件 物理 存储地址 SASHELP.VEXTFL DICTIONARY.INDEXES SAS数据 集索引 SASHELP.VINDEX DICTIONARY.MEMBERS SAS数据 集 SASHELP.VMEMBER DICTIONARY.OPTJONS 目前设定的SAS系统选项 SASHELP.VAPTION DICTIONARY.STYLES ODS类型 SASHELP.VSTYLE DIC

26、TIONARY.TABLES SAS数据 文件和视图 SASHELP.VTABLE DICTIONARY.VIEWS SAS数据 视图 SASHELP.VVIEW 其中使用PROC SQL查询表词典部分,SQL章节有详细的说明。下面只给出一个简单的查询例子。 pros sql; title All Tables and Views in the SASHELP Library; select libname, memname, memtype, nobs from dictionary.tables where libname=SASHELP; 2.目录册文件 SAS目录册文件是特殊的SAS文件,用来存放多种不同种类的信息文件。这些信息文件都很小,每个信息文件都被称为一个条目(entry),条目有多种不同的类型。一些目录册文件包含一些系统信息如功能键定义信息。 特别声明: 1:资料来源于互联网,版权归属原作者 2:资料内容属于网络意见,与本账号立场无关 3:如有侵权,请告知,立即删除。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报