第2章SAS系统快速入门清华大学经管学院朱世武Zhushw@em.tsinghua.edu.cn本章内容提要SAS系统简介SAS系统工作环境存取和管理数据呈现数据分析数据SAS系统简介全称为StatisticsAnalysisSystem,最早由北卡罗来纳大学的两位生物统计学研究生编制1972研制出第一版,1976年成立了SAS软件研究所,正式推出了SAS软件,现在是8.2版是用于数据分析与决策支持的大型集成信息系统,统计分析功能是它的重要组成部分和核心功能国际上的标准软件系统SAS功能模块BASESAS模块SAS/STAT---统计分析模块SAS/ETS---经济计量学和时间序列分析模块SAS/OR---运筹学模块SAS/QC---质量控制模块SAS/IML---交互式矩阵程序设计语言模块SAS/GRAPH---绘图模块SAS/FSP---快速数据交互式菜单系统模块SAS/AF---交互式应用开发模块SAS功能模块SAS/ASSIT---菜单驱动界面模块SAS/ACCESS---访问外部数据模块SAS/EIS---企业信息系统模块SAS/INSIGHT---可视化探索工具模块SAS/CALC---电子表格模块SAS/CONNECT---分布式数据处理模块SAS/WA---企业级数据仓库管理模块SAS/EM---企业级数据挖掘模块SAS模块的分类功能主要模块数据库及其管理BASESAS,FSP,ACCESS,SQL,?分析工具STAT,ETS,QC,OR,INSIGHT,CALC,?开发呈现工具BASESAS,IML,AF,EIS,GRAPH,SAS系统的特点由大型机系统发展而来针对专业用户进行设计程序驱动,功能强大高级编程语言具有工业用途的分析软件SAS技术水平的三个层次第一层面:会使用SAS菜单以及一些菜单界面的SAS模块,了解初步的SASBASE语句,能用SAS系统作简单的数据加工处理和分析,具有一定的数理统计知识,掌握一定的SASSTAT过程。第二层面:精通SASBASE,能用SAS语言编写复杂的SAS程序,能用SASBASE进行大型的、复杂的数据加工整理和呈现,掌握SAS和外部数据文件的接口,会进行复杂的统计建模和分析等,初步掌握一种基于SAS的开发工具。第三个层面:在一、二层面基础上,进一步掌握SAS/AF,SAS/IML等,能开发基于SAS的数据管理和分析模块。本章目的让初学者能够快速地熟悉SAS系统的应用,完成一些简单的数据处理和分析,即快速得到SAS技术第一层面水平。本章主要介绍SAS系统的菜单操作,配合命令和功能键的使用。有些地方也会附带介绍SAS系统中的一些基本概念,使初学者能够边练习边了解SAS系统。本章基于SAS菜单操作,基本上都可以通过SAS语言编程来实现。所以,读者一定要学好本书以后关于SAS语言方面的内容,那些才是SAS软件的精华,只有利用SAS语言编写程序才能更有效地发挥SAS软件的强大功能。本章目的绝不是本书的目的,仅具备第一层面的SAS水平是很难体会SAS的优势,不如学其它任意一种简单的统计分析软件。SAS的工作界面菜单栏工具栏功能窗口SAS窗口条命令行缺省情况下的活动窗口SAS资源管理器窗口结果窗口编辑器窗口(F5)日志窗口(F6)输出窗口(F7)资源管理器窗口管理SAS逻辑库和文件快捷方式逻辑库存贮SAS文件文件快捷方式标识外部文件四个系统逻辑库:MapsSashelpSasuserWork编辑器窗口编辑器窗口用来编辑SAS程序编辑器能够实现如下的功能对SAS语言的彩色编码和语法检查可展开或折叠程序片段可记录宏支持键盘快捷方式(Alt或Shift)加上其它键多层撤消和恢复SAS程序的一般特点语句用分号结束不区分大小写空格、空行一般可以任意放置SAS程序由数据步和过程步构成日志窗口程序行黑色:以语句标号开始提示蓝色:以NOTE开始警告绿色:以WARNING开始错误红色:以ERROR开始输出窗口输出SAS程序的执行结果结果窗口结果窗口可以查看和管理SAS程序的输出结果两类菜单栏菜单栏的下拉菜单操作:点菜单栏中的按钮弹出菜单操作:相应窗口点鼠标右键命令行命令行中输入SAS命令工具栏定制工具栏:右击工具栏→选定制SAS窗口条通用极大极小化窗口操作浏览文件资源管理器窗口是管理SAS文件的简单界面数据库操作SAS8.2系统的四个预定义数据库:Work数据库叫做临时库,存放在其中的SAS文件叫临时文件,这些临时文件当退出SAS系统时会被自动删除。Sasuser库保存与用户个人设置有关的文件,它是永久的,即退出SAS时文件不会被删除。Sashelp库保存与SAS帮助系统、例子有关的文件,是永久的。Maps建立一个新的数据库在资源管理器窗口双击逻辑库图标。选文件→新建输入newlib,引擎选项中保留默认项,选中启动时启用可以选择其他的引擎,读入不同格式的数据文件。点击浏览按钮,选上这个数据库的目录,点击确定。点击确定按钮,在资源管理器窗口出现newlib图标。在资源管理器窗口双击Sashelp数据库图标。在数据库中找到一个叫Class的数据表文件,选中这个文件的图标,在弹出菜单中选复制。回到上一级目录,双击Newlib数据库图标。在空白处点鼠标右键,在弹出菜单中选粘贴。在新建的数据库中出现一个Class的文件。用户还可以实现将数据表文件打印、删除、重命名等操作复制SAS数据表到新的数据库中创建文件快捷方式选文件→另存为,在保存在一栏中选择你要保存的目录,在文件名中输入文件名newproc,点保存按钮。在资源管理器窗口双击文件快捷方式图标。选文件→新建,则出现一个文件快捷方式赋值的窗口。输入名称newproc,选中启动时启用。点击浏览按钮,选择刚才保存的文件newproc.sas。点确认。功能键调出功能键(KEYS)窗口F9调出功能键窗口。例如F3、F8是提交SAS程序F4是调用刚提交的程序F5、F6和F7分别是调用编辑器窗口、日志窗口和输出窗口。CLT+E是清除窗口中的内容添加新的功能键定义按F9调出功能键窗口按F12添加新的功能键在命令行中输入命令“END”或“SAVE”来保存这个设置。这个设置一直有效,直到用户再次修改或清除它。SAS数据集在SAS系统中,数据是以数据集的形式来存储和处理的。SAS数据集(SASDatasets)可以看作由若干行和若干列组成的表格。SAS数据集存放在以特殊格式存放的二进制文件中,用一个SAS逻辑名来使用SAS数据集,不需要知道它在磁盘存储的物理地址。数据集的每一行叫做一个观测(Observation),每列叫做一个变量(Variable)。SAS数据集等价于关系数据库系统中的一个表,SAS数据集有时也称作一张表。以Class数据表文件为例,这个文件实际上就是一个数据集。这个数据集中有5个变量,分别是姓名(name)、性别(sex)、年龄(age)、身高(height)、体重(weight)。数据集中有19个观测,其中每一个学生的资料都是一个观测,每个观测包括了以上5个变量的数据。ObservationVariableSAS名字由英文字母、数字、下划线组成;第一个字符必须是字母或下划线;名字最多用32个字符,大写字母和小写字母不区分。有关SAS名的约定SAS数据集用两级水平名命名:第一级名字是SAS逻辑数据库的库名;第二级是文件的名字。例如Sashlep.Class,Sashelp是数据库的名字,而Class则是文件本身的名字。临时数据集和永久数据集的区别:临时库数据集可以使用单水平名或双水平名;而永久库数据集必须使用双水平名字来加以确认。例如Work.Class和Class都代表临时库中的文件,而Sashlep.Class则是永久库中的文件。浏览和编辑数据打开数据表文件:选择下拉菜单工具→表编辑器。在VIEWTABLE窗口状态下选择文件→打开。在对话窗口中选择相应的数据库和要打开的文件在命令行中输入“VT(数据表文件名字)”。其中,数据表文件名字必须根据刚才介绍的命名规则来输入(临时数据集用单水平或双水平名,永久数据集用双水平名)移动和隐藏列隐藏选中这一列,然后在弹出菜单中选Hide(隐藏)一项,则这一列自动隐藏起来,但并没有从数据集中删除。要恢复显示这一列,可以选数据→隐藏/取消隐藏,在Hide/Unhide窗口中双击Hidden栏中的列变量Weight,将Weight放回到Displayed一栏中,点OK确认。则Weight列又再次显示。移动点击要移动的列的标题,这样就选择了这一列数据。按住鼠标左键拖动这一列到另一列的之前或之后,放开鼠标键就能改变列的顺序改变列的标题如果这一列没有被赋与标签值,则在表中显示的标题是这一列变量的变量名;点击某一列的标题(以Weight列来示范),在弹出菜单中选ColumnAttributes,在ColumnAttributes窗口中的Label一栏中输入Weightinpounds,然后点Apply按钮确认。列标题被改为Weightinpounds。然后点Close关闭该窗口。提示改变列的标签只能是对当前窗口有效,一旦关闭该数据表文件,列的标签恢复到原来的缺省值。因此,为了保存改变的列标签,需要将该文件另存为另外一个数据表文件。对数据排序学生的身高进行排序的操作:在下拉菜单中选编辑→编辑模式。或直接点工具栏中的编辑图标。则VIEWTABLE窗口从浏览模式转换到编辑模式。点列标题Height选中这一列,在弹出菜单中选Sort(排序),选Descending(降序)或Ascending(升序)。则身高数据自动按降序或升序排列。也可以在选中这一列之后,点工具栏的升序排序或降序排序图标提示各种类型的数据都可以进行排序,如果是符号变量则按字母的顺序排列,数值变量按数值大小进行排序,时间变量按时间先后排序。按某一个变量进行排序,则整个观测都按新的顺序排列,而不仅仅是这一列的数据。排序后,观测的排列顺序改变了,我们可以了解到各个学生之间的身高关系。在编辑状态下进行排序,则新的顺序关系被保存下来。当用户关闭该窗口之后,再打开这个数据集,则显示的是新的顺序关系对数据进行筛选在VIEWTABLE窗口状态下,选菜单数据→Where。出现一个WHEREEXPRESSION的对话框在对话框的AvailableColumn一栏中点Sex,在Operators中选EQ(等于)。在AvailableColumn一栏中出现了一列LOOKUPdistinctvalues,点击它。在新出现的窗口中选F一项。可以在Where一栏中看到这样的语句:SexEQ‘F’。这个语句的意思是选择性别是女性的观测数据。点OK确认。可以看到VIEWTABLE窗口只显示了女学生的资料以上的操作选择了Class数据中的一个子集,但并没有从数据集中删除其它数据。要恢复原来的数据显示,只需要选菜单数据→Where清除则可。要保存这个子集可以将子集保存为另外一个文件编辑单元格在VIEWTABLE窗口的编辑模式下可以修改原来的数据:只需要点击要修改的单元格,输入你要修改的数据,则原来的数据被置换。若不想修改或想重新修改,点工具栏的取消行编辑图标,返回到修改前的状态。如果想保存修改,则选择菜单文件→保存,或直接点保存图标。用其它方式浏览和编辑数据在FSVIEW窗口中查看和编辑数据:在命令行中输入“FSV(数据集名)”;操作实例;FSVIEW窗口的最大好处是它能够快速的打开一个数据表文件,比VIEWTABLE方式要快得多。在FSEDIT窗口中浏览和编辑数据:在命令行中输入“FSE(数据集名)”操作实例。导出数据选择菜单文件→导出数据。出现ExportWizard窗口。在Library一栏中选NEWLIB,在Member一栏中选CLASS。点Next按钮选择一