SAS系统和数据分析SAS数据集

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三课SAS数据集

一、SAS数据集的结构

SAS数据集是关系型的,它通常分为两部分:

●描述部分——包含了一些关于数据属性的信息

●数据部分——包括数据值

SAS的数据值被安排在一个矩阵式的表状结构中,如图3-1所示。

●表的列称之为变量(Variable),变量类似于其他文件类型的域或字段(Field)

●表的行称之为观察(Observation),观察相当于记录(Record)

变量1 变量2 变量3 变量4

Name Test1 Test2 Test3

观察1 Xiaoer 90 86 88

观察2 Zhangsan 100 98 89

观察3 Lisi 79 76 70

观察4 Wangwu 68 71 64

观察5 Zhaoliu 100 89 99

图3.1 一个SAS数据文件

二、SAS数据集形式

SAS系统中共有两种类型的数据集:

●SAS 数据文件(SAS data files)

●SAS 数据视窗(SAS data views)

SAS 数据文件不仅包括描述部分,而且包括数据部分。SAS 数据视窗只有描述部分,没有数据部分,只包含了与其他数据文件或者其他软件数据的映射关系,能使SAS的所有过程可访问到,实际上并不包含SAS 数据视窗内的数据值。

自始至终,在SAS语言中,“SAS数据集”与这两种形式中之一有关。在下面的例子中,PRINT过程用相同方法处理数据集aaa.abc,而忽略它的形式:

PROC PRINT DATA=aaa.abc

三、SAS数据集的名字

SAS数据集名字包括三个部分,格式如下:

Libref.data-set-name.membertype

●Libref(库标记)──这是SAS数据库的逻辑名字

●data-set-name(数据集名字)──这是SAS数据集的名字

●membertype(成员类型)──SAS数据集名字的这一部分用户使用时不必给出。

SAS 数据文件的成员类型是DATA;SAS数据视窗的成员类型是VIEW

例如,上面例子中的aaa.abc这个SAS数据集名字,aaa是库标记,abc是数据集名字,成员类型没有写出,应该是DATA或VIEW中的一个。

四、永久的和临时的SAS数据集

SAS的存储方式有两种:

●永久的SAS数据集

●临时的SAS数据集

一个SAS数据集是临时地或者是永久地存在,取决于该数据集所附属的SAS数据库是临时的或永久的。一般用LIBNAME语句把主机系统下某个目录与库标记联系起来,并用这个库标记作为SAS数据集名字的第一部分(或称第一级),这样规定的SAS数据集是永久的;如果只有第二部分(或称第二级)数据集的名字或库标记为WORK时,这样规定的SAS数据集是临时的。永久库中的所有文件将被保留,但库标记仍然是临时的。每次SAS启动时都自动指定两个库标记:SASUSER和WORK。分别联系目录“C:\SAS\SASUSER ”和

图3.2 SAS系统的库标记与对应的目录

“C:\SAS\SASWORK\#TDxxxxx ”。如图3.2所示。

1.对永久SAS数据集的命名

假定你想创建一个数据集名为Class的永久数据集,这个数据集中的观测值和变量定义为图3.1所示。首先,你要确定Class的数据集在哪里存储,然后使用LIBNAME语句来定义库标记;若选择Study作为库标记,那么在DATA语句中你应该这样命名SAS数据:

图3.3 创建永久性数据集STUDY.CLASS

libname study 'd:\sas\mydir';

data study.class;

当这个DATA步执行时,名为class的SAS数据集被存储在用库标记Study联系的目录里。图3-3所示的是创建永久性数据集STUDY.CLASS的程序,注意在第一条LIBNAME语句执行后,将在LIBNAME窗口出现第五个新的库标记“STUDY”和用户自定义联系目录“d:\sas\mydir”。在这次SAS会话后面的DATA步或PROC步使用这个数据集时,必须规定两级名字。例如:

proc print data=study.class ;

如果你想在另一次SAS会话里读这个class数据集,你必需再定义一个库标记。

2.对临时SAS数据集的命名

为了创建或读一个临时SAS数据集,通常你只要规定单级名字,即这个数据集名字。SAS 系统自动地使用WORK作为库标记。这对于开发和检查新程序非常有用,但每次结束SAS 后WORK库标记中的所有文件将被删除。例如,下面语句:

data class;

产生SAS数据集的全名为work.class(或work.class.data,该数据集的成员类型data是SAS系统自动产生的,不必写出)。

如果你执行DATA步但不想创建SAS数据集,可在DA TA语句里规定关键字_NULL_作为这个数据集的名字。如果你在DA TA语句中没有规定数据集的名字或保留名字_NULL_,那么SAS系统自动地创建一些SAS数据集,并命名为DA TA1、DA TA2、…这些数据集被存在WORK库中。

五、SAS数据集的索引

SAS数据集可以用一个或几个被称为关键字变量的变量来索引。SAS索引根据用它们的值组成索引的关键字的个数多少而分为:

●简单索引

●复合索引

图3.4 为STUDY.CLASS数据集建立关键字是NAME的索引

1.简单索引

简单索引是用一个关键变量的值来对观测定位指针。这个关键变量可以是数值变量或字符变量。当你创建一个简单索引时,SAS系统自动地以关键变量相同的名字给这个索引命名。下面的例子显示PROC DA TASETS语句为Study.class数据集创建一个简单索引。用library=study指明库标记study,用modify class语句说明在已指定d:\sasdata\mydir目录下所要修改的数据集名为class,真正建立索引的语句为index create name,name是数据集class 中的一个字段名,被指定为关键变量,然后用contents data=class语句打印这个class数据集的内容资料。如图3.4所示。

相关文档
最新文档