SAS基本概念:数据集.ppt
SAS系统对数据文件的管理,要 求浏览SAS文件库的属性和内容浏览SAS数据集的属性和内容使用ViewTable浏览、编辑和 新建SAS数据集设定SAS逻辑库(或文件库,数据库),SAS程序的基本组成是:若干data步和若干proc步组成一个完整的SAS程序,其中data步产生SAS数据集,而proc步则对SAS数据集内的数据进行处理并输出结果或产生新的数据集。本节主要介绍data步建立数据集的基本方法 SAS对数据的分析与呈现都是面对SAS数据集(如Sashelp.class)进行的,在SAS系统中只有SAS数据集才能被SAS过程使用。SAS数据集是一种SAS文件;SAS文件是由SAS系统创建和管理的有特殊结构的文件.包括 SAS数据集(类型为Table,可以看作由若干行列组成的表格),SAS目录册(类型为Catalog,不能表示成行列结构,如系统设置、图象、声音)等.,数据集,SAS数据集有两类:SAS数据文件 SAS数据视图,SAS数据文件同时描述信息和存储数据值。SAS数据视图并不实际存储数据,而只是一个查询语句。,class是数据视图class1是数据文件,SAS数据集组成部分包括:描述信息;数据值。,每列为一个变量,包括一组有着相同特征的值,每行就是一个个体的性质,SAS系统对数据文件的管理SAS 逻辑库(文件库),SAS数据集存储在SAS逻辑库中.SAS逻辑库还存储其它SAS专用文件(由 SAS 创建和管理的文件).SAS逻辑库的文件用两级命名方式定名:libname.SAS-filename 逻辑库名(库标记).文件名,SAS数据集,SAS逻辑库,SAS系统对数据文件的管理SAS 逻辑库(文件库)-类型,SAS逻辑库有永久库和临时库两种:临时库:是指它的内容只在启动SAS时存在,退出SAS时内容完全被删除。系统缺省的临时逻辑库为WORK.永久库:是指它的内容在SAS关闭对话之后仍旧保留,直到再次修改或者删除。SAS系统中除了WORK以外的逻辑库都是永久库。如SAS系统自动指定的逻辑库SASHELP,SASUSUER 和 MAPS都是永久库.,建立SAS逻辑库的方法:用菜单操作;资源管理器 当前逻辑库 新建逻辑库 用LIBNAME语句。在编辑器窗口用 libname 命令语句格式:LIBNAME libref SAS-data-library 语法说明:Libref 逻辑库名 SAS-data-library 逻辑库对应的物理地址Engine 引擎名称(缺失时为默认引擎),例2.1 用LIBNAME语句创建SAS逻辑库。Libname ResDat d:ResDat;多个个文件夹创建一个SAS逻辑库:Libname a(d:resbd,d:resfin);例2.2 引用非临时库的SAS文件时必须使用两级命名方式,而引用临时库的SAS文件时,可以直接使用文件名,效果等同于work.文件名。data=ResDat.Idx000001;,SAS系统对数据文件的管理SAS 逻辑库(文件库)-用资源管理(浏览)器查看库,进入浏览器窗口即可查看SAS文件库的属性和内容.,若用详细列表显示库内容,点击某一栏目名时可将此栏目内容按字母顺序排序后详细列出.,在库名处点击鼠标右键并选属性(Properties)即可显示该库的属性.,SAS系统对数据文件的管理SAS 逻辑库(文件库)-用浏览器查看文件属性,在文件名处点击鼠标右键并选属性(Properties)可显示SAS文件的属性.,SAS系统对数据文件的管理SAS 逻辑库(文件库)-用浏览器查看文件属性,对数据文件可查看各列(字段)属性 在列名(如weight)点击右键可修改某些栏目的内容,SAS系统对数据文件的管理SAS 逻辑库(文件库)-用浏览器操作文件,在文件名处点击鼠标右键可在弹出菜单中选择对文件的操作,包括文件的更名、复制、删除等.,复制文件也可以用将文件直接拖动至库的目录树来实现.,用鼠标左键双击数据文件名即可打开SAS数据集.,SAS系统对数据文件的管理浏览SAS数据集-使用Viewtable 浏览与编辑,ViewTable 提供一个显示数据集内容的窗口.它具有对数据集的浏览、编辑和创建的功能如何进入ViewTable窗(VT窗或VT界面):(1)在SAS资源管理器或逻辑库对话窗中双击SAS 数据集的图标(V8)(2)键入命令:VT 数据集名 例如 VT Sashelp.CLASS(3)在SAS主窗口由工具=表编辑嚣=进入TV界面后 由文件=打开所选数据集.,(切换到SAS,用CLASS数据集),SAS系统对数据文件的管理浏览SAS数据集-使用Viewtable 浏览与编辑,Viewtable 提供两种打开数据集的方式:编辑(Edit)浏览模式(Browse Mode)只能浏览,不 能改动数据集内容(缺省时的模式).编辑(Edit)编辑模式(Edit Mode)允许修改数据 集内容.,允许修改数据集的编辑方式又分为编辑(Edit)行级编辑访问(Row Level Edit)只封锁编辑的行(缺省时的模式):对该行进行锁定,在改行编辑完毕之前,其他进程无法修改改行.编辑(Edit)表级编辑访问(Table Level Edit)封锁整个表进行编辑:开启后,其他进程无法对该表进行修改.,SAS系统对数据文件的管理浏览SAS数据集-使用Viewtable 浏览,Viewtable 提供两种显示数据集的形式:查看(View)表视图(Table View)以矩阵 表格形式显示数据,一次可显 示多条记录(缺省时的模式).,查看(View)表单视图(Form View)一次只 显示一条记录(一个观测).,SAS系统对数据文件的管理浏览SAS数据集-使用Viewtable 浏览,对变量(字段)可在下拉菜单选 数据(Data)列属性(Column Attributes)改变选定的某个变量(列)显示形式:General栏目下可临时改变变量属性(只适用于 显示,但在Save as时属性改变有效)Colors和Fonts 栏目下可分别设定各字段名称和内容的颜色和字体,(切换到SAS系统,用CLASS数据集),SAS系统对数据文件的管理浏览SAS数据集-使用Viewtable 浏览,浏览变量(字段):选查看(View)列标签(Column Label),浏览数据 集时显示变量的标签名;查看(View)列名(Column Name),显示变量名.可用鼠标操作改变各列的位置和栏位的宽度;选数据(Data)隐藏/取消隐藏(Hide/Unhide)可隐 去(恢复)显示某些列;数据(Data)固定(Hold)可选定表格左侧若干列 在横向滚动时保持不动.,SAS系统对数据文件的管理使用Viewtable 浏览,浏览观测(记录):选 数据(Data)Where:可使用where语句选 择要显示的观测(记录);EQ=;NE=;GT;LT=;LE=;IN name IN(Wang Li);连接字符算符“|”data;x=Toms;y=Toms;z=x|y;put z=;run;选数据(Data)Where清除(Where Clear):可 清除where语句的选择,显示全 部观测;选 编辑(Edit)查找(Find)或重复查找(Refind):可使用where语句逐条查找满足 条件的观测(记录).,SAS系统对数据文件的管理使用Viewtable 编辑,在编辑模式下,点击单元格(或字段)就可对单元格(或字段)的内容进行修改;选编辑(Edit)添加行(Add Row):可进入编辑新的一 行;编辑(Edit)复制行(Copy Row):可将选中的一行 复制到新的一行;编辑(Edit)提交新行(Commit new Row):将添加 或复制的新一行补充到数据集的最后 一行,并显示完整的数据表;编辑(Edit)取消行编辑(Cancel Row Edit):取消对 添加或复制的新行的编辑;编辑(Edit)删除行(Delete Row):删除选中的行.,SAS系统对数据文件的管理使用Viewtable 存SAS数据集,在浏览模式或编辑模式下选 文件(File)另存为(Save As)可将显示的数据集(按显示设定的属性)存为指定的 SAS 数据集;在编辑模式下选文件(File)保存(Save)可用显示的数据集(按显示设定的 属性)修改原有的 SAS 数据集.,SAS系统对数据文件的管理使用其它菜单窗口浏览与编辑,除了Viewtable窗口外,Insight和Analyst Application 也提供了对数据集浏览和编辑的窗口,他们在加工数据方面有较强的功能.,SAS系统对数据文件的管理用编程方法显示数据集,当没有特殊要求时,使用默认(缺省)的方式显示SAS数据集.只须用以上简单的过程步.,SAS系统对数据文件的管理,在SAS系统中浏览和编辑SAS数据集一般必须先设定SAS逻辑库(文件库),然后将要浏览和编辑的数据集存放在已设定的SAS逻辑库(文件库)中.,SAS系统对数据文件的管理SAS 逻辑库-库的引擎(Engine),SAS的逻辑库都有一个引擎(驱动),这个引擎决定了SAS可以访问和写入的SAS文件格式.它可以是V9,V6等表示不同SAS版本的,也可以是Oracle,DB2等表示外部数据格式文件,还有SPSS,DMBP等为一些其它软件格式文件使用的.不同引擎的库连接可构成混合引擎的库,实现同时看到库内不同引擎的文件.,SAS系统对数据文件的管理本节的练习题,1.用菜单方法建立新库(库标志名为finance);此库包含本课程所使用的sas数据集;2.用两种方法(菜单或命令)进入ViewTable窗 口,并浏览数据集class;3.先浏览class中SEX=F的观测及AGE=14 的观测,然后浏览全部观测;4.浏览数据集class的描述信息和数据内容;5.浏览SAS永久库SASUSER的属性和内容,并 浏览数据集AIR的描述信息和数据内容.,生成SAS数据集,要 求学会使用ViewTable窗口直接输入;学会用数据步输入简单的数据集.,生成SAS数据集数据来源及相应方法,建立SAS数据集的各种途径,数据存于纸上需直接键入,数据存于文本文件,数据存于流行数据库文件中,生成SAS数据集数据集的描述信息,为了新建一个SAS数据集,一般应该先规定数据集的名称及标题名,它包含变量的属性(变量名及标签,类型,长度,输入输出格式).数据集名应由字母或下划线开始且不超过32个 字节的字符、数字或下划线构成,不区分大小写,如name,aBc,x1,_song_都行且abc与ABc一样,但cl1(不能有减号)、a bit(不能有空格)、song(不能有特殊字符)等都不合法名称.若用Viewtable界面直接输入数据,同时对格式和其它属性无特殊要求时,也可先输入数据,而后设定各个变量的属性.,生成SAS数据集数据集中变量属性要求,数据集中变量的属性:变量名(Name):字母或下划线开始且不超过32个(V6为8)个字符、数字或下划线构成类型(Type):数值型、字符型($)长度(Length):缺省8字节(32767)标签(Label):256字节输入格式(Informat):输入格式名w.d输出格式(Format):输出格式名w.d,必须,可选,生成SAS数据集缺失值,在数据集的一条记录中某个变量无数据时,称为缺失值(Missing Value).字符型变量的缺失值用空格符表示数值型变量的缺失值用句号“.”表示,NAME SEXPOSITION AGE SALARYAlex M A 35 1500Linda F 28 1400Simon M C 45,生成SAS数据集输入/输出格式,输入、输出格式例子:,122341212,234.1234$12,234.1234,7.2comma9.2dollar10.2,输入数据,输入格式,实际存储 数据值12234.12,输出格式,8.2comma9.2dollar10.2,输出数据,12234.1212,234.12$12,234.12,(见BASE41.SAS),生成SAS数据集输入输出格式,日期输入、输出格式例子:,20OCT9720/10/971997/10/20,DATE7.DDMMYY8.yymmdd10.,输入数据,输入格式,实际存储 数据值 13807,1960,1,101960,1,211960,2,1311961,1,1366,(见BASE42.SAS),生成SAS数据集输入输出格式,几种常用的输入、输出格式:,w.d$w.dCOMMAw.dDOLLARw.dDATEw.MMDDYYxw.,数字型格式,宽度为w,小数为d 标准的字符型格式数字中嵌入逗号数字中嵌入逗号,前加$日期格式按日月年格式读入的数据 日期格式,生成SAS数据集用Viewtable窗口直接输入,命令:VT 或 VT New=数据集名;即弹出空白的表,生成SAS数据集用Viewtable窗口直接输入,在ViewTable窗口打开空白表后可点击变量名在弹出菜单选Column Attributes或选 Data Column Attributes 并在弹出窗口设定该变量的属性;或选 文件(File)类似(Like)并选数据集,使新建数据集与已有数据集有相同的变量和属性;或选文件(File)引用(Include)并选数据集,使新建数据集利用已有数据集的属性和内容进行修改.,生成SAS数据集用Viewtable窗口直接输入,在设定变量属性后(此时系统已存贮了 SAS数据集的描述部分)再 点击单元格即可在单元格输入内容.在输入完毕后可选:文件(File)另存为(Save as)或 文件(File)保存(Save)将表存为SAS数据集.,生成SAS数据集 使用数据步新建数据集,SAS的程序由两类程序步(Step)构成:数据步(DATA STEP):以DATA语句开始,创建和处理SAS数据集;过程步(PROC STEP):以PROC语句开始,用于分析和处理SAS数据集形式的数据,有时还可创建包含过程结果的SAS数据集.,生成SAS数据集直接输入数据生成SAS数据集,在DATA步直接输入数据的一般形式:,DATA SAS-data-set;变量属性设定语句;INPUT 语句;其它语句;CARDS;数据行;RUN;,在DATA步直接输入数据的例子:data da1;input x y z;sum=x+y+z;cards;1 3.1 5 3 2.3 7 6 3.4 6;run;,(见BASE43.SAS),生成SAS数据集由文本数据文件生成SAS数据集,在DATA步由文本数据文件生成SAS数据集的一般格式:,DATA SAS-data-set;变量属性设定语句;INFILE filename;INPUT 语句;其它语句;RUN;,在DATA步由文本数据文件生成SAS数据集的例子:data da2;infile c:f1.txt;input x y z;mean=(x+y+z)/3;run;文本数据文件f1.txt的内容:3.1 5 3 2.3 7.,(见BASE44.SAS和BASE45.SAS),(在infile语句可规定不同的分隔符,如 DLM=,),生成SAS数据集本节的练习题,1.用VT命令进入ViewTable窗口,直接输入数据并进行编辑修改后存为sas数据集;2.使用Import窗口菜单系统,将*.txt 转换为sas数据集;3.用数据步生成sas数据集.,