**篇 Part 1
SAS编程和数据处理
第1章 Base SAS基础
第2章 读取外部数据到SAS数据集
第3章 对单个数据集的处理
第4章 对多个数据集的处理
第5章 数据汇总与展现
第6章 SAS SQL语言
第7章 SAS宏语言
第8章 开发多语言支持的SAS程序
第1章
Base SAS基础
本章将从SAS系统开始,介绍Base SAS的组成部分,并以Windows环境为例介绍SAS窗口环境、SAS逻辑库、数据集、目录(Catalog)等SAS中常用的概念。在了解了这些基础知识之后,会引导读者使用以上的知识编写一段简单代码,提交执行,并查看日志及运行结果。*后将用简短的篇幅简单介绍SAS*新推出但将会承担重要角色的SAS Studio的基本功能。
需要注意的是,本书中描述的内容会包括Windows和UNIX(和Linux)操作系统,如果在Windows和UNIX环境下的操作或命令有所不同,将会专门说明。本书内容未专门考虑Mainframe,因为其操作使用模式相差很多,而且读者会较少接触和使用Mainframe环境,但书中对SAS软件和产品的描述、编程概念和程序语言以及给出的代码在Mainframe环境下同样适用。关于SAS的版本,本书是基于写作时发布的*新版SAS 9.4来展开的,除非特别说明,书中内容也同样适用于较早的版本SAS 9.3和SAS 9.2。
本章对Base SAS窗口环境进行了着重介绍,目的在于让读者学会如何使用SAS窗口环境开发、运行SAS代码,并查看结果和检查代码运行日志。但是书中不会介绍每个菜单、子菜单、工具栏以及其他在Base SAS软件中出现的元素和功能,因为读者在实际学习和工作中可以很方便地通过SAS软件提供的帮助文件进行了解。
1.1 SAS系统简介
SAS提供了一套集成的可扩展的解决方案和使用灵活、功能强大的SAS编程语言,用于执行如下任务:数据输入和获取、数据转换处理和管理、报表绘制和图形、统计和数学分析、商业规划、预测、运筹优化,以及应用开发等。
SAS可以在多种操作系统下运行,包括Windows、UNIX、Linux以及Mainframe等。同时,SAS程序代码具有很好的移植性,在一种环境下开发的SAS代码可以在其他操作系统下运行。
SAS系统的核心Base SAS由以下部分组成。
DATA步:用于处理和管理数据。
SAS过程(Procedure):用于分析、处理和制作报表。
可扩展和定制SAS软件程序的宏语言(Macro Facility):可以减少程序文本,使SAS程序编写得更有效且易于维护,便于编写更为复杂的程序逻辑。
DATA步调试器:当提交的DATA步运行出错或产生的输出结果与预期不一致时,可以借助它来跟踪DATA步的执行情况,从而帮助发现程序逻辑中的错误。
输出交付系统(Output Delivery System,ODS):该系统会产生各种易于访问的格式输出,例如,HTML文件、传统的列表输出、PostScript文件、RTF文件和输出数据集等。
SAS窗口环境:它是一个开发和测试SAS程序的交互式图形用户界面,本节后面会有更进一步的介绍。
这其中,前面3个是SAS语言的主要元素,本篇后面的章节会专门介绍。
Base SAS软件提供数据处理过程和基础的统计过程FREQ、MEAN、CORR及UNIVARIATE等,可以与其他的SAS产品一起使用,从而实现更强大的数据读取、分析、优化、展示等功能。下面列出了部分常用的SAS产品,用于实现数据读取、统计分析、优化和信息展示等功能。
(1)SAS/ACCESS接口
提供与各种第三方数据源进行交互的功能。例如各种关系型数据库,诸如Oracle、DB2、Teradata等;ERP系统诸如SAP R/3、PeopleSoft等;同样对于Hadoop等也有专门的ACCESS接口。对于不同的数据源,ACCESS接口需要单独的软件使用许可。SAS与第三方的数据源进行交互时,将直接调用该数据库或应用厂商提供的客户端对数据进行访问,从而保证了与数据访问的效率。此外,SAS/ACCESS还提供接口访问Microsoft Access数据库文件和Excel工作簿文件中的数据。
(2)SAS/GRAPH
SAS/GRAPH是SAS系统的数据可视化和展现(图形)组件,用于数据和信息展现,并且它可通过二维和三维图形(包括图表、散点图和地图),可视化地展现数据值之间的关系。还可创建文本幻灯片、生成各种图形输出,并可提供实用程序和管理输出。
(3)SAS/STAT
SAS/STAT软件提供了全面的统计分析方法,共有超过75个统计分析过程,包括T检验、方差分析(ANOVA过程)、聚类分析(CLUSTER过程、VARCLUSTER和FASTCLUS过程)、因子分析(FACTOR过程)、回归分析(REG过程)、逻辑斯蒂(LOGISTIC过程)等。SAS/STAT软件还包括效能和样品容量分析(PSS)应用程序。该软件不断被更新,以反映新的研究成果和方法。
(4)SAS/ETS
提供用于经济计量分析、时间序列分析和预测(ESM过程、ARIMA过程和UCM过程等)、系统建模与仿真(MODEL过程)、离散选择分析、定性有限因变量模型分析、时间序列数据的季节性调整、财务分析和报告、访问经济和金融数据库及时间序列数据的管理。除了以上过程外,SAS/ETS软件还包括对经济和金融数据库以及互动环境的无缝访问,从而进行时间序列预测及投资分析。
(5)SAS/OR
SAS/OR专注于运筹与优化。SAS/OR提供的OPTMODEL建模语言用于构建、解决和维护*优化模型的建模环境,通过OPTMODEL过程的各种求解器或单个过程,例如OPTLP、OPTMILP、OPTMILP过程,解决线性规划、混合整数规划、非线性规划等问题。
以Base SAS软件和以上产品与技术作为基础,构建在SAS智能平台(SAS Intelligence Platform)上的SAS许多商业解决方案,可以帮助各类商业客户和其他组织机构解决诸多业务领域的特定问题,例如客户智能、风险管理、供应链、零售等。关于SAS商业解决方案的内容,在本书的第四篇会有相应的介绍。
1.2 启动SAS软件
SAS有多种运行模式:SAS窗口环境模式、非交互式模式、批处理模式及交互式行模式,下面会一一介绍。除了上面提到的4种模式外,SAS还可运行在对象服务器模式里, SAS元数据服务器、工作区服务器、存储过程服务器和OLAP服务器都是属于这种模式。关于这些服务器,在本书第四篇会进行讨论。
1.2.1 SAS窗口环境模式
SAS窗口环境是SAS提供的一种交互式图形界面,是在Windows环境下使用SAS编辑或提交SAS程序语句*方便也是*常用的模式。在SAS窗口环境中,用户可以通过程序编辑器编辑并提交SAS语句,程序语句的执行状态、执行时间等日志信息及put语句的输出会显示在日志窗口,同时还会提供在线帮助等。本章下一节会使用Windows环境下的窗口环境作为示例,详细介绍SAS窗口环境的各个窗口功能及其使用。
在Windows环境下启动SAS窗口环境和启动其他Windows应用程序一样有多种方式,可通过“开始”菜单里的快捷方式、命令行等方式进行。在安装SAS软件时,SAS软件安装程序会提示选择要安装的SAS语言版本。如果当前操作环境下安装了多种语言的SAS,英文的SAS可以通过“开始”“程序”SASSAS 9.4 (English) 启动。启动所有语言(包括英文)的SAS软件时,其快捷方式位于“开始”“程序”SASAdditional Languages中。例如,启动Windows操作环境下简体中文SAS软件的快捷方式为:“开始”“程序”SASAdditional LanguagesSAS 9.4 (Chinese (Simplified)),如图1.1所示。
此外,还可以使用命令行方式启动SAS窗口环境。在下面给出的Windows和UNIX操作环境下的命令后,都可以指定其他系统选项来定制要启动的SAS会话。例如,选项-NODATE表示在该SAS会话中产生的输出页面里不显示日期,选项-CONFIG指定SAS配置文件,以在启动时加载配置文件中更多的系统选项等。
Windows环境
UNIX环境
#/opt/SASHome/SASFoundation/9.4/sas -dms
UNIX环境下的命令行若不加选项-DMS,则会进入SAS的显示管理系统。当使用Windows机器通过Telnet远程登录SAS软件所在的UNIX主机时,如果需要使用SAS窗口环境,可以在该Windows机器上启动X-Windows软件,例如Exceed、XMing、Cygwin等,并设置当前Telnet会话的DISPLAY环境变量到该Windows机器上。这样,所启动的SAS窗口环境会重定向到该Windows操作系统。当启动SAS的显示管理系统时,在该Windows环境下会弹出类似的SAS窗口环境。在初次使用X-Windows窗口时会有些不习惯,有些操作与Windows环境下的SAS窗口稍有差异,但大部分都很类似。
在UNIX环境下,更多使用的是非交互模式或批处理模式,或者其他的工具。例如,可使用Windows环境下的客户端程序SAS Enterprise Guide将SAS代码提交到UNIX服务器上。
……