当前位置:文档之家› --SAS系统和数据分析SAS数据库

--SAS系统和数据分析SAS数据库

第四课SAS数据库一、SAS数据库(SAS data library)的成员一个目录里的所有SAS文件都是一个SAS数据库(SAS data library)的成员。

一个目录可以包含外部文件(非SAS文件)以及SAS文件,但只有这些SAS文件才是SAS数据库的成员。

SAS数据库是一个逻辑概念,没有物理实体。

图4.1描述了SAS数据库、SAS文件和SAS 文件的元素之间的关系。

注意,这个库对应于主机操作系统的一个目录,而SAS文件对应于目录内的一个文件。

图4.1 在SAS数据库中的成员类型例如,我们前面定义的Study永久库就是一个SAS数据库,对应的目录为d:\sasdata\mydir,在此目录内有SAS数据集文件:●Class.sd2(包含两种成员类型DATA和VIEW)●索引文件Class.si2其他SAS文件如用BASE SAS软件的存储程序功能产生的成员类型为:●PROGRAM程序文件SAS的目录是具有成员类型为:●CATALOG的SAS文件此文件用来存储许多称为目录条目(catalog entries)的不同类型的信息,用于SAS系统识别它的结构。

典型地,像BASE SAS软件,如果存储目录条目信息对于处理是必要的话,就自动地存储SAS目录条目,而在其他SAS软件中,用户必须在各个过程中规定这个目录条目,用下面完整的四级名字形式来识别:libref.catalog.entry-name.entry-type(库标记.目录名.条目名.条目类型)。

SAS系统有一些特性帮助你管理目录中的条目,一是CATALOG过程,它是BASE SAS软件中的一个过程;另一个是显示管理的CATALOG窗口。

SAS访问描述器是一个允许用户创建SAS/ACCESS视图的工具,访问描述器的成员类型为:●ACCESS的一些文件我们可以用SAS/ACCESS软件里的ACCESS过程创建它们。

访问描述器描述存储在SAS 系统外部的数据,如一些公开的数据库管理系统(DBMS)中的数据,每个访问描述器保存我们想要访问的有关DBMS文件的必要信息,如它的名字、列名和列类型等。

二、对SAS数据库的管理1.联系和删除库标记的方法可以使用LIBNAME语句把库标记与一个物理名字联系起来.例如上面例子中: libname Study 'd:\sasdata\mydir';也可以使用LIBNAME语句删除这个库标记,提交的形式如下:libname Study clear ;所谓的SAS数据库的物理名字,是指在你的主机系统下的SAS文件名,因此必须符合主机系统下文件名的法则,如在Windows环境下,文件的路径(也称主机的目录名)命名法则为如d:\sasdata\mydir的形式。

库标记是在SAS系统中用来标识SAS系统一组文件的方式,它是一个临时的名字,使得我们在每一个SAS系统作业或会话中与SAS数据库联系在一起。

2.查看SAS数据库及其内容如图4.2所示,操作步骤如下:图4.2 创建和查看STUDY数据库及其内容●在命令框中键入LIB或LIBNAME,进入LIBNAME窗口,列出了所有已指定库标记的SAS数据集●在想要查看的库前面的横线上键入S(即SELECT)并回车,进入DIR窗口,列出了指定数据库中的所有SAS文件●在想要查看的数据集前面的横线上键入S并回车,进入V AR窗口,列出了指定数据集的描述部分的信息●在想要修改的变量前面的横线上键入R(即RENAME)并回车,可以改变这个变量的属性。

●发布END命令退出当前窗口或用MOUSE单击一下窗口右上角的关闭窗口按钮。

3.用Libraries对话框进行管理用MOUSE单击一下SAS系统的标准工具栏上的Libraries按钮(最后一组命令按钮的第一个),或选择菜单命令:Globals\Access\Display libraries进入Libraries对话框,如图4.3所示。

在这个Libraries对话框中可以更方便地完成上述的库标记的建立(单击New Library按钮)和修改(单击Modify Library按钮),数据库和SAS 文件的查看(使用View下拉菜单)和更新(单击Refresh按钮)等SAS数据库的管理。

图4.3 使用Libraries对话框进行数据库管理三、SAS文件的驱动(Engines)1.驱动(Engines)的概念驱动(Engines)是SAS系统从文件中读出数据和写入数据到文件中的一些内部I/O指令。

从SAS系统的6.06版本起,SAS系统引入了有关驱动(Engines)的文件新概念,用这一方法显著地扩充了系统的文件存取功能。

2.Engnies和SAS数据集模式的关系如图4.4所示。

图4.4 Engines和SAS数据集模式的关系3.SAS系统采用Engines驱动的优点●处理已存在的较早版本的数据集,而不必拷贝它们为新版本的格式●处理由各种数据管理系统(比DB2、ORACLE、Rdb/VMS和SQL/DS)所创建文件的数据格式●处理用统计软件(比如SPSS、BMDP和OSIRIS)生成的数据●创建一些被压缩、加索引和其他特性的SAS数据集第五课采用不同的文件或SAS数据集中的一些变量来创建逻辑的SAS数据集输入输出格式一、SAS数据集中变量的类型SAS共有两种类型的变量:●字符型变量━━以ASCII码存放,最大长度不超过200字符●数据型变量━━以浮点数存放,长度为8个字节SAS数据集的矩阵式结构要求每个观测的每个变量值都必须存在,因此如果某个数据值缺失,系统会自动补上一个缺失值。

对于数字型变量,这个值显示为一个点“.”,而对于字符型变量,这个值显示为空格。

二、输入和输出格式SAS数据集的数据值的内部存放格式并不一定与该数据值的输入和输出格式一致,这取决于SAS的两个重要功能:输入格式(Informats)和输出格式(Formats)。

输入格式指示SAS 系统如何读入数据,而输出格式指示SAS系统如何输出数据。

它们的一般形式如下:●输入格式:<$>informat<w>.<d>●输出格式:<$>format<w>.<d>其中,$符号指示这是个字符输入输出格式,没有$符号表示是数值输入输出格式;Informat 是一个输入格式的名字,format是一个输出格式的名字;w是宽度值,对许多输入输出格式这个值是输入输出数据的列数;d在数值输入输出格式中是小数部分的长度;点“.”是所有输入输出格式中必须包含的分隔符,作为名字的一部分。

如果在格式中省略w和d值,SAS 系统使用缺省的值。

在SAS系统6.12版本中有五类输入格式,字符输入格式共有14种,数值输入格式共有35种;四类输出格式,字符输出格式共有13种,数值输出格式共有41种。

三、日期时间值在SAS系统中的存储当变量的值表示日期、时间和日期时间时,在这种特殊的情况下,用户还需了解日期时间值在SAS系统中是怎样被存储的。

SAS系统存储日期值为:●1960年1月1日和这个日期之间的天数例如,1962年3月8日被存储为797(即366+365+31+28+7),1958年10月1日被存储为-457(即-365-31-30-31)。

SAS系统存储时间值为:-457●从午夜开始到此刻的秒数例如,8:18存储为29880(8×60×60+18×60)。

一个日期时间值存储为1960年1月1日午夜到这个日期时间之间的秒数。

例如,1962年3月8日8:18存储为6915960(797×24×360+29880)。

SAS系统6.12版本提供了17种日期、时间和日期时间的输入格式,31种输出格式。

四、几种常用的输入输出格式如表5.1所示。

表5.1 常用的输入输出格式主要的输入输出格式名描述w.d 标准的数值数据型格式$w. 标准的字符数据型格式COMMAw.d 含有逗号、小数点的数值数据型格式DOLLARw.d 含有美元号$、逗号和小数点的数值数据型格式DATEw. 日、月份、年形式的日期值(ddmmmyy),例如,w=7时,18jan97;w=9时,18jan1997MMDDYYw. 月份、日、年形式的日期值(mmddyy),例如,w=8时,01/18/97;w=6时,011897五、数据格式变换举例设有一个SAS数据集survey,其中有一个数字变量INCOME和一个日期变量BDATE,针对不同的采样数据格式,我们对变量采用对应的输入格式,得到在SAS系统中实际存储的数据值,然后根据报表的输出要求,选定一种输出格式,将实际存储的数据值按所选输出格式显示结果。

如表5.2所示。

表5.2 INCOME 和BDA TE变量的输入输出格式输入数据→变量和输入格式→实际存储数据值→变量和输出格式→显示结果12345.1234 Income8.2 12345.12 Income8.212345.1212,345.1234 Incomecomma8.2 12345.12 Incomecomma8.212,345.12$12,345.1234 Incomedollar8.2 12345.12 Incomedollar8.2$12,345.1208MAR62 Bdatedate7. 797 Bdatemmddyy6.03086203/08/62 Bdatemmddyy8. 797 Bdatedate9.08MAR1962。

相关主题