SAS统计软件在试验设计与数理统计上的应用介绍.doc_第1页
SAS统计软件在试验设计与数理统计上的应用介绍.doc_第2页
SAS统计软件在试验设计与数理统计上的应用介绍.doc_第3页
SAS统计软件在试验设计与数理统计上的应用介绍.doc_第4页
SAS统计软件在试验设计与数理统计上的应用介绍.doc_第5页
免费预览已结束,剩余70页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

10 SAS软件在试验设计与数据处理中的应用本章要点:本章主要介绍了国际上最富知名度的三大统计软件之一SAS统计软件,它包括SAS软件的基本知识,基本命令,SAS数据集,软件应用中的程序设计; SAS软件在简单计算、绘图、方差分析、多元回归设计等应用中的处理方法。重点:SAS软件基本命令,数据结构及其程序设计和在计算、绘图、方差分析及多元统计分析中的应用。难点:SAS软件在多元统计分析中的应用。10.1 SAS软件简介10.1.1 SAS概述SAS是StatisticalAnalysisSystem(统计分析系统)的缩写,1966年美国North Carolina大学的两位生物统计学研究生开始研制SAS系统,直至1976年成立了SAS软件研究所,正式推出了SAS软件,1985年推出微机版SAS。SAS软件的宗旨是为所有需要进行数据处理、数据分析的计算机或者非计算机工作人员提供一种易学易用、完整可靠的软件系统。SAS语言本身是一种非过程语言(第四代语言),类似于C语言,且综合了各种高级语言的功能和灵活的格式,将数据处理和统计分析融合于一体。SAS在统计分析领域和数据挖掘技术几乎处于垄断地位,成为国际上流行标准企业管理软件。 经过近30年的不断发展完善,SAS系统已由最初的统计分析软件发展成为大型集成应用软件系统,发展成具有完备的数据集成访问、数据仓库管理、决策业务分析,数据挖掘等功能。SAS和SPSS、BMDP并称为国际上最富知名度的三大统计软件。在国际学术界有条不成文的规定:凡是用SAS和SPSS统计分析的结果,在国际学术交流中不必说明算法,由此可见其权威性和信誉度。学习SAS软件时,需要读者有基本的统计学知识,对所选用的统计方法有较清楚的了解,没有统计学基础知识要掌握SAS软件较为困难。SAS系统是一个由三十多个专用模块组成的大型集成式软件包。其功能包括客户机/服务器计算、数据访问、数据存储及管理、应用开发、图形处理、数据分析、报告编制、质量控制、项目管理、运筹学方法、计量经济学与预测等。实际使用时可以根据需要选择相应的模块。SAS主要有如下模块:SAS基本部分:称为SAS/BASE。可以完成基本的数据管理工作和数据统计工作,是SAS系统的基础,所有其它SAS模块必须与之结合使用。SAS分析核心:这一部分是SAS系统的灵魂。它提供了严肃的、权威的数据分析与决策支持功能。包括SAS/STAT(高级统计),SAS/ETS(时间序列分析),SAS/IML(交互式矩阵语言),SAS/OR(运筹学),SAS/QC(质量控制),SAS/INSIGHT,SAS/LAB。SAS开发工具:面向对象的开发工具,可以定制信息处理应用系统。包括SAS/AF,SAS/EIS(经济信息系统),SAS/GRAPH(图形处理)等模块。SAS分布式处理及数据仓库设计:此部分为SAS的高级数据处理功能。包括SAS/ACCESS,SAS/CONNECT,SAS/SHARE等模块。SAS的这些模块可单独使用、也可互相配合起来使用,其中最常用的3个模块分别是SAS/BASE(基础)、SAS/STAT(统计)和SAS/GRAPH(图形),各模块的功能及作用见表10.1。10.1.2 SAS系统的特点SAS系统是一个模块化的集成软件系统,便于用户根据自己的需要进行选择。其基本部分是Base SAS软件,此外还有用于统计分析的SAS/STAT软件;用于高级绘图的SAS/GRAPH软件;用于矩阵运算的SAS/IML软件;用于运筹学和线性规划的SAS/OR软件;用于经济预测和时间序列分析的SAS/ETS软件等。1)操作简便 SAS的宗旨是为所有需要进行数据处理、数据分析的非计算机专业人员提供一种易学易用、完整可靠的软件系统。用户把要解决的问题用SAS语言(近乎自然英语的非过程语言)表达出来,组成SAS程序,提交给SAS系统就可以解决所提出的问题。执行情况和输出结果都在屏幕上显示出来。2)SAS系统将数据管理与统计分析融为一体SAS程序的结构由两个基本步骤任意组合而成。DATA用于对数据的加工处理;PROC用于分析数据和编写报告。SAS系统克服了通常软件或偏重于数据管理功能或偏重于统计分析的弊病,把数据管理与统计分析有机地结合在一起。3)适用性强、应用面广SAS系统适用于任何经验的人员(初学者或有经验的用户);适用于任何类型的数据;适用于几乎是任何应用的需要;适用于任何计算机环境;适用于今日与未来(扩展性能强)。表10-1 SAS常用模块一览 SAS/Base是SAS系统的核心,它负责数据管理,交互应用环境管理,进行用户语言处理,调用其它SAS产品。Base SAS对SAS系统的的数据库提供丰富的数据管理功能,还支持用标准SQL语言对数据进行操作。Base SAS能够制作从简单列表到比较复杂的统计报表和用户自定义式样的复杂报表。Base SAS可进行基本的描述性统计及变量间相关系数的计算,进行正态分布检验等。同时它还支持长数据名,并具有强化了的Web功能。SAS/STAT覆盖了所有的实用数理统计分析方法,是国际统计分析领域的标准软件。SAS/STAT提供十多个过程可进行各种不同模型或不同特点数据的回归分析,如正交回归、响应面回归、logistic回归、非线性回归等,且具有多种模型选择方法。可处理的数据有实型数据、有序数据和属性数据,并能产生各种有用的统计量和诊断信息。在方差分析方面,SAS/STAT为多种试验设计模型提供了方差分析工具。更一般的,它还有处理一般线性模型和广义线性模型的专用过程。在多变量统计分析方面,SAS/STAT为主成分分析、典型相关分析、判别分析和因子分析提供了许多专用过程。SAS/STAT还包含多种聚类准则的聚类分析方法。SAS/GRAPH强有力的图形软件包SAS/GRAPH可将数据及其包含着的深层信息以多种图形生动地呈现出来,如直方图、圆饼图、星形图、散点相关图、曲线图、三维曲面图、等高线图及地理图等等。SAS/GRAPH提供一个全屏幕编辑器;提供多种设备驱动程序,支持广泛的图形输出以及标准的图形交换文件。SAS/ETS提供丰富的计量经济学和时间序列分析方法,是研究复杂系统和进行预测的有力工具。它提供方便的模型设定手段、多样的参数估计方法。SAS/ASSIST面向任务的菜单驱动界面,为SAS系统提供了面向任务的菜单驱动界面,借助它可以通过菜单系统来使用SAS系统其它产品。它自动生成的SAS程序既可辅助有经验的用户快速编写SAS程序,又可帮助用户学习SAS语言。SAS/INSIGHT可视化的数据探索工具。它将统计方法与交互式图形显示融合在一起,为用户提供一种全新的使用统计分析方法的环境。SAS/LAB一个半智能化的交互式数据分析界面,自动生成常用的各种分析结果,非常适合初学者使用。SAS/Warehouse Administrator数据仓库管理工具。它在其它SAS软件的基础上提供了一个建立数据仓库的管理层,包括:定义数据仓库和主题,数据转换和汇总,汇总数据的更新、Metadata的建立、管理和查询,Data Marts和Info Marts的实现。SAS/Enterprise MinerSAS/Enterprise Miner企业级数据挖掘工具,基于“SEMMA”理念,为用户提供了从抽样工具、数据重组、神经元网络、数据回归到结果显示的许多新过程,使SAS的分析功能得到了全新的发挥。SAS/MDDB ServerSAS的多维数据库产品。主要用于在线分析处理(OLAP),可将从数据仓库或其他数据源来的数据以立体阵列的方式存储,以便于用多维数据浏览器等工具快速和方便地访问数据。SAS/SPDSScalable Performance Data Server(SPDS)是一高性能的多用户数据服务器,主要针对数据仓库应用中的数据检索来设计。该服务器充分利用了SMP结构的特性以提高I/O的效率。SAS/SPECTRAVIEW多维科学数据分析和可视化工具。SAS/GIS集地理信息系统功能与空间数据的显示和分析于一体。它提供层次化的地理信息,每一层可以是某些地理元素,也可与用户定义的主题(例如人口,产值等)相关联。用户可交互式地缩小或放大地图,设定各层次显示与否,并利用各种交互式工具进行数据显示和分析。SAS/AF应用开发工具。SAS系统是功能丰富的软件包,用户使用SAS/AF可将包含众多现成功能的SAS软件作为方法库。利用SAS/AF的屏幕设计能力以及SCL语言的处理能力来快速开发各种功能强大的应用系统。SAS/AF也采用了先进的OOP(面向对象编程)技术,使用户可以方便快速地开发各类具有图形用户界面(GUI)的应用系统。SAS/FSPSAS/FSP提供对SAS数据集的屏幕浏览和编辑功能。它能快速地打开SAS数据集,并提供数据录入、编辑和查询等功能。同时也是一个开发工具。SAS/EIS决策支持表现工具,也是一个快速应用开发工具。SAS/EIS完全采用新兴的面向对象的编程模式。EIS是以生动直观的方式(图或表)将关键性或总结性信息呈现给适当使用者的非常易用的系统。SAS/Enterprise Reporter企业级的跨平台智能数据转换和报表生成工具。SAS/IntrNetSAS/IntrNet为SAS Web应用提供了数据服务和计算服务:htmSQL为一Web服务器的CGI程序,它使得可以通过Web浏览器动态查询SAS数据或外部的关系型数据库;SAS ODBC Driver使得能通过支持ODBC的Windows Web服务器来访问SAS数据;SAS Driver for JDBC使得可以通过Java applet来查询SAS数据;SAS/IntrNet Application Dispatcher使得可以通过Web浏览器动态地递交SAS程序到SAS应用服务器执行,并将结果返回浏览器。SAS/ORSAS/OR提供全面的运筹学方法,是一种强有力的决策支持工具。它辅助人们实现对人力、时间以及其它各种资源的最佳利用。SAS/OR包含通用的线性规划、混合整数规划和非线性规划的求解,也为专门的规划问题提供更为直接的解决办法,如网络流问题、运输问题、分配问题等。SAS/OR包含用于项目管理、时间安排和资源分配等问题的一整套方法。SAS/QC为全面质量管理提供了一系列工具。它也提供一套全屏幕菜单系统引导用户进行标准的统计过程控制以及试验设计。SAS/QC提供了多种不同类型控制图的制作与分析。Pareto图(排列图)可用于发现需优先考虑的因素,Ishikawa图(鱼骨图)使用户直观地进行因果分析。SAS/IML提供功能强大的面向矩阵运算的编程语言。帮助用户研究新算法或解决SAS中没有现成短法的专门问题。SAS/IML中的基本数据元素是矩阵。它包含大量的数学运算符、函数和例行程序,用户用很少的语句便可描述很复杂的计算过程。SAS/CALC功能强大的电子表格软件,它具有财务分析、数值建模、数据整合及管理的能力。初学者和有经验的人员都能通过一个标准表格式界面管理和分析电子表格中的数据。程序员和应用开发人员可以使用强有力的编程窗口,利用电子编程语言,建立完整的应用。SAS/ACCESS为了对众多不同格式的数据进行查询、访问和分析,SAS/ACCESS提供了和目前许多流行数据库软件的接口。利用SAS/ACCESS,可建立外部异构数据库的一个统一的公共数据界面。SAS/ACCESS提供的与外部数据库的接口是透明的和动态的。用户不必将数据真正读入SAS数据库,而只需在SAS中建立对外部的描述(即View)文件,便可将此文件当作真正存储着数据的SAS数据集一样使用。对一些反复经常使用的外部数据,可以利用SAS/ACCESS将数据真正提取进入SAS数据库,SAS/ACCESS提供的接口是双向的,既可将数据读入SAS,也可在SAS中更新外部数据或将SAS数据加载到外部数据库中。目前,SAS/ACCESS支持的数据库主要有IMS-DL-I,SQL/DS,DB2,ADABAS,Rdb,Oracle,Sybase,Ingres,Informix,DBF/DIF,Excel,ODBC等。SAS/CONNECT在目前标准的网络环境下,通过SAS/CONNECT可以使各平台的SAS系统建立内在联系,实现分布处理,从而有效地利用各平台的数据及其资源。SAS/CONNECT既提供远程计算服务,也提供远端数据服务。SAS/CONNECT支持多种分布处理模式,包括流行的Client/Server方式。目前,SAS/CONNECT支持MVS,CMS,VSE,OpenVMS,UNIX,OS/2,Windows,Windows95/98,Windows NT,DOS,AOS/VS,PRIMOS等常用系统之间的几乎各种互连方式以及TCP/IP,APPC,DECNet,NETBIOS,TELNET,ASYNC,HLLAPI,3270等多种通讯方法。SAS/SHARESAS/SHARESAS系统中进行数据库的并发性控制的专门软件。它对同时有多个用户操作的同一文件(读、写、更新)的系统提供一个可靠、高效的多用户数据访问环境。SAS/Risk Analysis Environment应用最新的数据仓库、分析和报表技术,企业级的风险评估和管理环境。SAS/CRM客户关系管理系统。SAS/IT Service VisionIT Service Vision (ITSV) 是企业的全面IT服务的性能评估和管理的软件,这些IT服务包括计算机系统、网络系统、WEB 服务器和电话系统等。 ITSV将不同来源的数据进行整理和组织,以占有最少磁盘空间同时又能反映足够信息的方式,存放于性能数据仓库中,用GUI或批处理的方式产生组织内任意层面的报告。系统程序员及网络工程师能借此识别、研究并解决有关问题,效益及业务分析人员能借此制定资源管理的总体策略,CIO和数据中心经理能借此定期地得到所需的汇总和分析报告。SAS/PH-Clinical结合美国食品和药物管理局(FDA)标准,为制药、生物工艺学提供的临床数据管理系统。SAS/CFO VisionCFO Vision用于财务整合和报告,内部包含了会计知识,为日常财务工作提供了现成的程序,并提供了访问所有主要数据源的接口。它主要用于:访问财务和非财务的有关信息,整合财务数据,通过一个财务信息仓库来管理业务结构,通过财务报告和分析帮助理解财务的结果,并在组织内交流关键的业务结果信息。 SAS/GEO把各种地理信息数据和不同的应用整合在一个桌面系统中。它可以完成:从SAS系统访问、修改,建立常用的地理信息数据;实现不同格式地理信息数据间的转换;对数据进行分析和显示。10.2 SAS软件的应用基础10.2.1 SAS的启动和退出 1)启动SAS的方法常见有3种: 双击桌面SAS图标 开始菜单 程序 The Sas System The Sas System for Windows V*.* 直接双击SAS应用程序2)退出SAS的方法常见有3种: 标题栏关闭按钮 菜单栏 File Exit 在命令框键入“Bye”或“Endsas”10.2.2 SAS的显示管理系统启动计算机,点击SAS图标后,即可进入SAS的显示管理系统(Display Manager System),如图10-1。它象其它Windows应用程序一样,在一个主窗口内包含若干个子窗口,并有菜单栏、工具栏、状态栏等。在中有四个主要的窗口:)编辑窗口(PROGRAM EDITOR)编辑程序和数据文件图10-1 SAS DMS编辑窗口的使用类似于Windows中的记事本程序,可以在其中编辑文本文件,主要是编辑SAS 程序。程序可以直接在窗口中键入,插入新行用回车,插入点光标(闪动的竖线)可以用光标键(上下左右箭头、Home、End)移动或用鼠标单击到某一处。按住Shift再按光标键可以加亮显示一块文本,然后用复制、剪切、粘贴命令(Edit菜单中的Cut、Copy、Paste,或工具栏图标)可以复制或移动加亮显示的文本。这些编辑操作具体请参考Windows的有关文档。若要存储源程序,可打开图10.1中的“File”菜单,接着单击“Save As”,然后在图中输入文件名,再选择“保存”,则把源程序存入当前盘中。在程序行输入完毕,按F3键执行程序,也可选择“Run” “Submit”运行源程序。)日志窗口(LOG)记录运行情况,显示ERROR信息日志窗口记录程序的运行情况,逐条显示各行程序的执行情况,运行是成功还是出错,运行所用时间,如果出错,错在什么地方。运行记录窗口中以红色显示的是错误信息。)输出窗口(OUTPUT)输出运行的结果输出窗口显示SAS程序的文本型输出(图形输出单独有一个GRAPHICS窗口),即输出结果。输出分页显示。)图形窗口(GRAPH)输出图形另外还有SAS资源管理器(Explorer)和结果(Results)窗口。在SAS资源管理器窗口中,你可以查看和管理你的 SAS 文件,并为非 SAS 文件创建快捷方式;使用窗口来创建新的数据库和 SAS文件;打开任何 SAS 文件以及完成大部分的文件管理工作。例如:移动、复制和删除文件。结果窗口能帮助你操作和管理所提交的 SAS 程序的输出结果,你可以查看、保存和打印输出。默认情况下,Results 窗口藏在 Explorer 窗口的后面并且是空的,直到你提交了产生输出的 SAS 程序,它才会显示到前端。点击 Globals 菜单中的 Program editor、Log、Output、Graph 命令可以进入编辑、日志、输出及图形窗口。在SAS 8.X中定义了专用的功能键,其各自的功能如表10.2。SAS主窗口标题栏下是主菜单。SAS菜单是动态的,其内容随上下文而不同,即光标在不同窗口其菜单也不同。其中,File(文件)菜单主要是有关SAS文件调入、保存及打印的功能。Edit (编辑)菜单用于窗口的编辑(如清空、复制、剪切、粘贴、查找、替换)。Locals(局部)菜单与当前正在进行的操作有关,如果你正在程序窗口中编辑程序,则Locals菜单有提交运行、调回修改等项,如果在运行记录窗口或输出窗口则Locals菜单项根本不出现。Globals 菜单内容比较复杂,它可以打开被关闭的程序窗口、运行记录窗口、输出窗口、图形窗口,可以进入SAS提供的各个独立模块。主菜单下是一个命令条和工具栏菜单。命令条主要是用于与SAS较早版本的兼容性,可以在这里键入SAS的显示管理命令。工具栏图标提供了常见任务的快捷方式,比如保存、打印、帮助等等。鼠标光标在某一工具栏图标上停留几秒可以显示一个说明。工具栏图标的解释如下: Submit 提交编辑窗口中的程序。 New 清空编辑窗口。 Open 打开文件到编辑窗口。用户指定一个文件调入到编辑窗口内。这个文件从此与编辑窗口相关联,以后的存盘操作将自动存入这个文件。 Save 存盘,保存编辑窗口内容,注意如果此窗口已经与一个文件相联系的话此功能将覆盖文件的原有内容而不提示。 Print 打印当前窗口内容。 Print preview 打印预览。 Cut 剪切选定文本。 Copy 复制选定文本。Paste 粘贴。注意这些操作是对Windows 剪贴板进行的,可以用来与其它Windows应用程序交换文本、数据等。剪切或复制到剪贴板的内容可以被其它应用程序粘贴,其它应用程序放到剪贴板的内容也可以粘贴到SAS的编辑窗口中。 Undo 撤销刚才的编辑操作。 DOS prompt 临时进入DOS。 Browse 打开WWW浏览器并进入SAS公司的主页 。 Directories 进入Directory(目录)窗口,可以浏览各SAS数据库的内容,可以浏览数据库中的数据集、SAS目录的内容。 SAS/ASSIST 启动SAS的菜单驱动界面SAS/ASSIST 。 Help 启动Windows的帮助系统进入SAS 的帮助。表10-2 SAS中的专用功能键功能键 作 用F1 功能键。按F1键,可出现SAS的所有帮助信息F2 Reshow键,无用F3 类似F8键的功能(执行源程序)。但程序被执行后程序行即隐去,再按F4键可重现“源程序”,有用F4 改错用,相当于选择Run和Recall Last Submit 命令F5 使屏幕从其他处返回到编辑区(Program Editor 窗口)F6 显示Log窗口中的信息,使屏幕从其他处返回到Log窗口F7 显示Output窗口中的结果F8 运行程序,相当于选择了Run Sumit命令。程序执行后各窗口复原(不 放大) F9 显示键的功能介绍。F10 空着F11 Command 命令键10.2.3 SAS的程序结构在SAS中,对数据的处理可划分为两大步骤:)数据步,将数据读入SAS建立的SAS数据集;)过程步,调用SAS的模块处理和分析数据集中的数据。每一数据步都是以DATA语句开始,以RUN语句结束。而每一过程步则都是以PROC语句开始,以RUN语句结束。当有多个数据步或过程步时,由于后一个DATA或PROC语句可以起到前一步的RUN语句的作用,两步中间的RUN语句也就可以省略。但是最后一步的后面必须有RUN语句,否则不能运行。SAS还规定,每个语句的后面都要用符号“;”作为这个语句结束的标志。在编辑SAS程序时,一个语句可以写成多行,多个语句也可以写成一行,可以从一行的开头写起,也可以从一行的任一位置写起。每一行输入完成后,用ENTER键可以使光标移到下一行的开头处。10.2.4 SAS程序的输入及运行SAS程序的输入及运行步骤如下:)进入SAS的显示管理系统;)进入并扩大编辑窗口;)调出、编辑或修改SAS程序或数据文件;)将编辑窗口的SAS程序或数据文件存盘; )按功能键F8或点击“跑步”键运行SAS程序并注意观察日志窗口中的信息,如有ERROR出现,应将光标移到日志窗口,用PgUp和PgDn两键翻页,找到错误的所在;)将光标移到编辑窗口,按功能键F4或点击 Locals菜单中的 Recall text命令调出已经运行的SAS程序,改正错误后转入步骤(),直到日志窗口中的信息没有ERROR出现为止;)将光标移到输出窗口,用PgUp和PgDn两键翻页阅读输出的结果。10.2.5 应用SAS的捷径每个SAS模块都由多个可执行的文件组成,它们被称为SAS过程(SAS PROCEDURE),用户在调用SAS过程仅具体问题之前,必须用SAS语言编写一段程序, 通过它建立起用户与SAS系统之间的联系,我们称这段程序为SAS引导程序,简称为SAS程序(SAS PROGRAM)。应用SAS的关键就是要编写出符合各种情况的SAS程序。实现这一目的的前提条件是用户对SAS语言有较详细的了解,这对新用户来说,困难颇大。本章为广大用户提供了一条应用SAS的捷径,即“了解几个基本概念、掌握几组重要命令、调用并略加修改书中已编写好的各种SAS程序”。 许多人的实践结果证明:走这条捷径,使SAS软件的应用化繁为简、实用方便、省时省力、事半功倍。10.2.6 使用SAS必需了解的几个基本概念1)SAS数据集 SAS数据集(SAS Datasets)可以看作由若干行和若干列组成的表格,类似于一个矩阵,但各列可以取不同的类型值,比如整数值、浮点值、时间值、字符串、货币值等。SAS 数据集存放在以特殊格式存放的二进制文件中,我们用一个SAS中的逻辑名来使用SAS数据集而不需关心它到底如何存储在磁盘上。比如,一个名为C9510的数据集,它的逻辑形式如下表10.3。 表10-3 C9510数据集NAMESEXMATHCHINESEAVG李明张红艺王思明张聪刘颍男女男男女9289869880981069010911086.833388.666780.500094.416785.8333数据集的每一行叫做一个观测(Observation),每列叫做一个变量(Variable)。SAS数据集等价于关系数据库系统中的一个表,实际上一个SAS数据集有时也称作一张表。在数据库术语中一个观测称作一个记录,一个变量称作一个域。在C9510数据集中有5个观测,分别代表5个学生的情况,而每个学生有5个数据,分别为姓名、性别、数学成绩、语文成绩、平均分,所以此数据集有5个变量。从上面看出,数据集要有名字,变量要有名字,所以SAS中对名字(数据集名、变量名、数据库名,等等)有约定:SAS名字由英文字母、数字、下划线组成,第一个字符必须是字母或下划线,名字最多用8个字符,大写字母和小写字母不区分。比如,name,abc,aBC,x1,year12,_NULL_等是合法的名字,且abc和aBC是同一个名字,而class-1(不能有减号)、a bit(不能有空格)、serial#(不能有特殊字符)、Documents(超长)等是不合法的名字。2)SAS数据库 SAS数据集是各种特殊格式的 SAS文件中最重要的一种。另一种重要的SAS文件是 SAS目录(Catalog),用来保存各种不能表示成行列结构表格形式的数据,比如系统设置、图象、声音等。多个SAS文件可以放在一起,称为一个 SAS数据库(Library)。数据库有一个库名(Libname),其命名遵循上述SAS名字命名原则。在MS DOS/Windows环境中,一个SAS数据库实际是磁盘上的一个子目录(特殊情况下一个数据库可以由几个子目录组成)。为了把库名和子目录联系起来,使用LIBNAME语句。比如,我们在C:Y1995子目录中保存了几个SAS数据集,可以用如下语句把库名MYLIB与子目录C:Y1995 联系起来:libname mylib c:y1995;有三个预定义的SAS数据库:WORK、SASUSER、SASHELP。其中,WORK数据库叫做 临时库,存放在其中的SAS文件叫 临时文件,这些临时文件当退出SAS系统时会被自动删除。SASUSER库保存与用户个人设置有关的文件,它是永久的,即退出SAS时文件不会被删除。SASHELP库保存与SAS帮助系统、例子有关的文件,是永久的。从上面看出,SAS文件分为临时文件和永久文件:临时文件在退出SAS系统时自动被删除,永久文件在退出SAS系统时不自动被删除。所以,我们把作为中间结果使用的数据集或练习用的数据集作为临时数据集保存,而需要以后再用的数据集则可以保存为永久数据集。临时数据集和永久数据集的区别是:临时数据集可以用 单水平名,即只有数据集名,比如C9510,而永久数据集名由两部分组成,前一部分是它的库名,后一部分才是数据集名,两部分中间用小数点连接,比如放在MYLIB库(即C:Y1995 子目录)中的数据集TEACH必须用MYLIB.TEACH表示。这样指定的数据集名在生成时可以放到由库名指定的子目录中,在读取时可以到指定的子目录读取,并且不会被自动删除。临时数据集除用单水平名外 ,也可以用库名为WORK的两水平名,如WORK.C9510和C9510是一样的。要生成永久数据集,只要在指定要生成的数据集名时使用两水平名且库名已有定义,比如,要把上面的C9510数据集在生成时就放到C:Y1995子目录中,可以用如下语句:libname mylib c:y1995;data mylib.c9510;3)SAS程序的结构最简单的SAS程序由一个SAS数据步(SAS DATASTEP)和一个SAS过程步(SASPROCEDURESTEP)两部分组成。数据步以DATA语句开头, 其作用是建立SAS数据集(SAS DATA SET)。具体地说,就是建立起变量与数据之间的联系,使数据能方便地被SAS过程所利用;过程步以PROC语句开头,其作用是激活SAS过程。通常, 一个SAS程序中可包含多个SAS数据步, 也可包含多个SAS过程步。每一个SAS语句用一个分号结束,一行中可写多个SAS语句。下面就如何实现多元线性回归分析为例,展示SAS程序的结构。MREG1.PRG(外部文件名) MREG2.PRG(外部文件名)数据步的第1种书写形式: 数据步的第2种书写形式:DATA abc; DATA abc;INPUT x1-x4 y; INFILE 盘名:文件名;CARDS; INPUT x1-x4 y; 7 26 6 6078.5 用这种形式书写数据步的1 29 15 5274.3 前提是:将左边的13行5列数11 56 8 20 104.3 据事先用文件名存入软盘(或11 318 4787.6 硬盘)上, 然后, 用INFILE语 7 526 3395.9 句调用。如: 软盘插入A驱动11 559 22 109.2 器中, 文件名为w.dat, 则 3 71 176 102.7 INFILE语句的具体写法是: 1 31 22 4472.5 INFILE a: w.dat; 2 54 18 2293.1 这种形式的优点是数据21 47 4 26 115.9 步简炼, 数据可反复被调用。 1 40 23 3483.8 下面是调用reg过程的过程步:11 669 12 113.3 PROC REG;10 688 12 109.4 MODEL y=x1-x4; RUN;过程步与右边相同。说明MREG1.PRG和MREG2.PRG都是SAS程序的外部文件名,由用户定义, 仅在存文件、调文件时有用,运行SAS时不应将它写出;DATA是数据步开头的标志, 其后的abc(如果在程序中不引用此名,也可省略不写)为即将创建的SAS数据集名,由用户定义,最多可含8个字符(注意:数据集名通常不含“.”);INPUT语句定义了5个变量名,每执行一次,读取全部数据中的一行,依次赋给变量x1-x4和y;CARDS语句标志着其后为数据;如果数据中含分号,需将CARDS改成CARDS4,并用4个连续的分号“;”作为数据步的结束标志;仅有“;”的这一行是一空语句行,标志着数据步的结束;PROC是过程步开头的标志,其后的REG为实现多元回归分析的过程名; MODEL语句要求建立以y为因变量、x1-x4 为自变量的多元线性回归方程;RUN语句将通知SAS系统执行它前面的每一个SAS语句。10.3 SAS数据集的使用10.3.1 概述 在 SAS 中使用数据之前,它必须以名为 SAS 数据集的特殊形式存在。因此,学习 SAS 编程的第一步就是了解 SAS 数据集。从概念上讲,SAS 数据集(亦称“表”)是包含描述符信息和相关数据值的文件,该文件是一个以观测为行、以变量为列的、SAS 可以处理的表。某些 SAS 数据集还包含索引,这样方便 SAS 找到数据集内的记录。某些特殊情况下,例如用 SAS/ACCESS 直接读取数据库管理系统文件时,SAS 数据集内可能只包含用于访问数据的逻辑,而非数据本身。但就本教程而言,我们假定 SAS 数据集包含了数据。要使用 SAS 数据集,还需要了解其存储的方式。所有的 SAS 文件都存储在 SAS 逻辑库中,它是 SAS 数据集和目录等文件的集合。在 Windows 和 Unix 环境下,SAS 逻辑库通常是指位于同一文件夹或目录的一组 SAS 文件。要访问逻辑库,可指定其名称(亦称逻辑库引用名或逻辑库引用)。就逻辑库引用名而言,也可考虑用昵称或快捷方式在 SAS 会话中标识逻辑库。 10.3.2 查看 SAS 逻辑库中的文件 每次启动 SAS 时,SAS 都自动指定三个逻辑库。在本节中,您将了解这些逻辑库,并查看 Sashelp 逻辑库中的文件类型。1)在“SAS 资源管理器”窗口中,双击“逻辑库”。请看图10.3,共有三个逻辑库,这些逻辑库都是每次启动 SAS 时自动指定的。Sashelp 永久逻辑库,包含样本数据及控制 SAS 在用户的环境下如何工作的其他文件,它是只读逻辑库。Sasuser 永久逻辑库,包含的 SAS 文件位于存储个人设置的 Profile 目录下,这也是便于您存储个人文件的逻辑库。Work 临时逻辑库,用于切换会话时不必保存的文件。Sashelp、Sasuser 和您指定的逻辑库都是永久逻辑库,其中的文件都保存在您的操作环境中。Work 是临时逻辑库,该库中的文件在您结束 SAS 会话后不会被保存。2)双击 Sashelp 逻辑库。3) 滚动“SAS 资源管理器”窗口,可看到逻辑库中有几种类型的文件或成员。以下图标代表最常见的 SAS 文件类型: SAS 数据集或表 视图 目录 MDDB图10-3 SAS逻辑库窗口10.3.3 指定逻辑库定义逻辑库时,需向 SAS 指明 SAS 文件的位置。一旦定义了逻辑库,即可管理其中的 SAS 文件。在此任务中,您将用“新建逻辑库”窗口指定一个在本快速入门指南中使用的逻辑库。图10-4 新建逻辑库窗口1)在工具栏上,点击“新建逻辑库”工具( )。“新建逻辑库”窗口即打开,见图10.4。2)在“名称”框中,键入 MyLib。逻辑库名限长 8 个字符;必须以字母或下划线开头;只能包含字母、数字或下划线3)选中“启动时启用”复选框,这样每次启动 SAS 会话时,都将自动指定该逻辑库。4)点击“浏览”,选择默认位置或您的操作环境下的其他位置,在 Mylib 逻辑库中保存的文件,都将被保存至“路径”框中指定的目录或文件夹中。点击“确定”。5)点击“确定”即关闭“新建逻辑库”窗口。注:可以删除 SAS 逻辑库,将其删除后,SAS 不能再访问该目录。不过,该逻辑库中的内容仍存在于您的操作环境中。10.3.4 添加和重命名 SAS 数据集定义逻辑库之后,可以向其中添加 SAS 数据集。1)在“SAS 资源管理器”窗口为活动状态时,选择“查看” “显示树形结构”, 逻辑库即显示在窗口的左窗格中,见图10.5。2)点击 Sashelp 逻辑库。3)将 Prdsale 数据集从右窗格拖放到左侧的 Mylib 逻辑库中。4)点击 Mylib,可看到 Prdsale 已被复制到该逻辑库中。5)右击 Prdsale,然后选择重命名;键入新名称 ProductSales,再点击确定。注:SAS 数据集的名称必须是: 1 到 32 个字符长 以字母(A 到 Z,含大小写混合字符)或下划线 (_) 开头 后面跟以数字、字母或下划线的任意组合图10-5 SAS资源管理器窗口10.3.5 打开 SAS 数据集如果已经复制和重命名了数据集,即可查看其包含的数据。有多种方式可将数据放入 SAS 数据集。通常可以: 用 VIEWTABLE 窗口直接将数据输入 SAS 数据集 用“导入向导”或 SAS 编程语句将原始数据读入 SAS 数据集 用 SAS 编程语句读取和修改现有数据集 用 SAS/ACCESS 将其他厂商的数据文件转换为 SAS 数据集 用 SAS/ACCESS 直接读取其他厂商的数据 1)在“SAS 资源管理器”窗口中,双击 Mylib 逻辑库的 ProductSales 表后,该表在 VIEWTABLE 窗口中打开,见图10.6。图10-6 VIEWTABLE窗口2)滚动 VIEWTABLE 窗口,可看到共有 1440 行(亦称“观测”)和 10 列(亦称“变量”)。10.4 SAS程序的创建和运行10.4.1 概述您可以使用 SAS 程序访问、管理、分析和呈现数据。SAS 编程语言既功能强大,又可灵活运用。可以使用该语言对许多分析和报表编程。SAS 语言包含语句、表达式、函数和 CALL 例程、选项、输出格式及输入格式,这些都是众多编程语言所共有的元素。SAS 还可以通过称为 SAS 过程的内置程序库来简化编程。只需用户做很少的工作,SAS 过程就可以使用 SAS 数据集的数据值生成预编制的报表。Base SAS 过程可以让用户: 操作数据 存储和检索信息 执行统计分析 创建报表 本节将向您说明 SAS 程序的主要特征,它还将指导您完成创建、运行和管理 SAS 程序及其输出的基本步骤。10.4.2 SAS 程序组件 让我们先来看简单的 SAS 程序。下面的 SAS 示例程序包含两类程序步:DATA 步和 PROC 步。这两类程序步构成了所有 SAS 程序,它们既可以单独使用也可以结合使用。data clinic.admit2;set clinic.admit;run;proc print data =clinic.admit2;run;DATA 步通常用于创建或修改 SAS 数据集,但也可用来生成定制报表。例如,可以使用 DATA 步执行以下任务: 将数据放入 SAS 数据集 计算新变量的值 检查并更正数据中的错误 通过对现有数据集取子集、合并和更新来生成新的 SAS 数据集在示例程序中,DATA 步使用 CLINIC 逻辑库中的现有 SAS 数据集 ADMIT,在同一逻辑库中创建了新的 SAS 数据集 ADMIT2。PROC 步通常用来分析和处理 SAS 数据集形式的数据,有时还可创建包含过程结果的 SAS 数据集。PROC 步控制预编写例程(过程)的逻辑库,其中的例程用于对 SAS 数据集执行数据列表、排序和汇总等任务。例如,可以使用 PROC 步执行以下任务: 列显报表 生成描述性统计量 创建表格式报表 生成点/线图和图表 本示例程序使用 PRINT 过程列显数据集中的数据。DATA= 选项向SAS说明在过程中要使用的数据。10.4.3 SAS 程序特征接下来让我们逐一查看示例程序中的各个语句。SAS 程序由 SAS 语句构成,该语句具有两个重要特征: 通常以 SAS 关键字开头 始终以分号结束 DATA以关键字 DATA 开头,PROC 步以关键字 PROC 开头。通常,RUN 语句或新的 DATA 或 PROC 步的开始即标志着某一程序步的结束。RUN 语句用于向 SAS 说明要处理当前程序步中该语句之前的所有行。SAS 语句的格式不受限制。这意味着: 语句可以在某一行上的任意位置开始和结束 一个语句可延续数行 多个语句可位于同一行上 SAS 语句不区分大小写。可使用空格或特殊字符分隔 SAS 语句中的“单词”。10.4.4 将 SAS 程序复制到“编辑器”窗口中让我们尝试运行一个类似于您刚看到的示例的 SAS 程序。该程序将基于现有 SAS 数据集创建新 SAS 数据集,然后列显新数据集的列表。Mylib.ProductSales 数据集是在使用 SAS 数据集中创建的。如果尚未创建,请返回到该任务,定义逻辑库并创建数据集,然后再继续此任务。1)复制并粘贴以下代码或将其键入“编辑器”窗口中:2)data test; set ductsales;3)length Group $ 8;4)proc print data=test;run;5)请注意将该文本粘贴到“编辑器”窗口后,SAS 关键字将分别按颜色编码,且各程序步被分隔到不同的可扩展区块中,见图10-7。图10-7 编辑器窗口DATA 步将创建名为 Test 的新 SAS 数据集。请注意 Test 是一级名称。由于没有为 Test 数据集指定逻辑库名,SAS 使用 Work 逻辑库临时存储该文件。Test 数据集是基于存储在 MyLib 逻辑库中的 ProductSales 数据集创建的。请注意 ductsales 是二级名称。 PROC PRINT 步列出 Test 数据集内的所有数据。如果指定了 USER 逻辑库,SAS 将用 USER 逻辑库而不是 WORK 逻辑库来存储一级名称。10.4.5 提交程序并查看输出提交 SAS 程序后,SAS 将编译并执行代码,然后将所有结果返回到“输出”窗口中。1)在“编辑器”窗口处于活动状态时,选择“运行”“提交”。注:如果只需要提交“编辑器”窗口中的一部分程序,则突出显示要提交的部分,右击该突出显示的区域,然后选择提交选定文本。使用“编辑器”窗口以交互方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论