第三课SAS数据集
- 格式:pdf
- 大小:239.22 KB
- 文档页数:5
SAS 编程及应用------SAS数据集的建立SAS数据格式v 观测(Observation)1.描述被观测对象的单一整体(如个别人、一个实验动物等)某些特性的一系列数据值称为一个观测,又称为观察。
在SAS数据集中每一行数据是一个观测。
v 等同于数据库中的一条记录v 变量(Variable)1.变量指定了数据的某一特性。
在SAS数据集中,每一个观测是由各个变量的数据值组成。
在数据集中每一列数据是一个变量。
v 变量的命名1.最多32个字符长,第一个字符必须是字母或者下划线,不能有空格。
特殊字符(如$,@,#)也不允许在SAS名中使用。
合法变量名如:A A1 abc name age total …;2.SAS系统保留的特殊变量名,以下划线开始和结尾。
如:_N_和_ERROR_等。
v 变量的特性1.名称、类型、长度、输入格式、输出格式和变量描述;2.两种类型:数值型和字符型;3.长度特性:是指存贮的字节数。
缺省长度是8(为了存贮长度与缺省值不同的变量,需使用LENGTH语句)。
v 缺失值1.当一个变量由于某种原因没有得到(可能没有观测到,或由于数据错误,或由于计算错误),称该值为缺失值;2.在SAS中数值类型的缺失值用“.”表示;3.字符类型的缺失值为“”(空格)表示。
v 常量1.SAS常量为值固定不变的量;2.常量分为以下三类;•数值常量:1.5 -2.79 1.75E-5;•字符常量:“Hello”‘ABC’“Zhangli”;•日期、时间、日期时间常量:后接D,T,DT。
‘1JAN2000’D‘9:25:19’T‘1JAN2000:10:30:05’DTv SAS数据集1.SAS数据集是SAS过程的数据基础。
可以从外部数据读进来,转变成SAS数据,也可以自己输入产生;2.可以是临时的,或永久的;3.数据集含两部分内容:• 描述部分:数据名称、类型、长度、格式等• 数据部分:包含实际数据值4.SAS数据值被安排在一个矩阵式的表状结构中。
第三章利用窗口菜单操作和建立SAS数据集第一节利用Viewtable浏览SAS数据集一、如何打开Viewtable窗口三种方法:一是在浏览器窗口,双击需要打开的数据集图标;二是在命令框键入vt.dst.bclass;三是按照菜单操作如下:然后打开需要的数据集即可。
二、表格(Table View)和表单(Form View)显示表格(Table View)表单(Form View)三、获得Viewtable的帮助在Viewtable窗口执行下列操作:四、浏览和编辑模式浏览模式编辑模式五、查看表及变量的属性(一)表的属性(二)变量的属性(三)用标签显示表头结果如下:(四)用变量名显示表头结果如下:(五)改变列显示的宽度在Viewtable窗口,当光标在灰色的行或列表头栏移动时,光标移至栏的分隔线时,光标会变为一个双向箭头,这时按下左键拖动鼠标就能改变分隔线的位置,改变某一列的宽度或所有行的高度。
(六)隐去某些列(七)改变变量显示的次序1. 可以采用鼠标拖动表头;2. 按如下操作(八)在移动中固定左侧的列(九)用Where语句选择部分观测进行浏览第二节利用Viewtable修改与输出SAS数据集一、按某个变量的值进行排序首先进入表编辑模式,然后二、修改单元格的内容进入表编辑模式,单击某单元格,则该单元格高亮显示。
如下所示。
三、加入新的一行四、复制行五、删除已有的行六、打印输出七、输出为HTML文件第三节用Viewtable建立新的SAS数据集一、用Viewtable打开空白表键入命令vt或vt new=temp或者用如下菜单方式:二、设定变量属性三、输入数据四、利用已有表的属性建立新的数据集首先,通过键入命令vt new=temp或按如下操作打开一个空白表:然后五、以现有的表为基础新建数据集打开一个空表,然后六、SAS的其它屏幕编辑工具1. Analyst(分析员应用程序)2. Insight(交互式应用程序)第四节利用Import菜单转换外部文件为SAS数据集一、进入Import菜单二、使用导入菜单下面以将某个excel文件转换为SAS数据集为例说明。
第三课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是数据集名字,成
员类型没有写出,应该是DA TA或VIEW中一个。
四.永久的和临时的SAS数据集
SAS的存储方式有二种:
●永久的SAS数据集
●临时的SAS数据集
图3-2 SAS系统的库标记与对应的目录
一个SAS数据集是临时地或者是永久地存在,取决于该数据集所附属的SAS数据库是临时的或永久的。
一般用LIBNAME语句把主机系统下某个目录与库标记联系起来,并用这个库标记作为SAS数据集名字的第一部分(或称第一级),这样规定的SAS数据集是永久的;如果只有第二部分(或称第二级)数据集的名字或库标记为WORK时,这样规定的SAS数据集是临时的。
永久库中的所有文件将被保留,但库标记仍然是临时的。
每次SAS启动时都自动指定两个库标记:SASUSER和WORK。
分别联系目录“C:\SAS\SASUSER ”和“C:\SAS\SASWORK\#TDxxxxx ”。
见图3-2所示。
1对永久SAS数据集的命名
假定你想创建一个数据集名为Class的永久数据集,这个数据集中的观测值和变量定义为图3-1所示。
首先,你要确定Class的数据集在哪里存储,然后使用LIBNAME语句来定义库标记;若选择Study作为库标记,那么在DA TA语句中你应该这样命名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会话后面的DA TA步或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所示。
2复合索引
复合索引引用两个或两个以上变量的值来确定观测的指针位置。
用在复合索引中的这些变量可以是数值类型或字符类型或两者兼有。
当创建这个索引时必须规定一个唯一的索引名。
下例见图2-5所示,给出PROC DATASETS语句为数据集Study.Class创建一个复合索引。
图2-5为数据集Study.Class创建复合索引
TEST1、TEST2和TEST3三个变量被指定为关键变量。
Index create TEST=(test1 test2 test3)语句中,TEST变量是建立复合索引时,必须由用户自行规定一个唯一的索引名,小括号内的数据集变量的次序表示复合索引的关键字次序,即test1是第一关键字,test2是第二关键字,test3是第三关键字。