第一章 SAS基础 1.1 初识SAS 1.2 初识INSIGHT模块 1.3 初识“分析家” 1.4 SAS编程初步
1.1 初识SAS 1.1.1 SAS简介 1.1.2 使用SAS 1.1.3 SAS对数据文件的管理
1.1.1 SAS简介 1. SAS与统计分析 在众多的统计软件中,SAS以运行稳定、功能强大而著称。近20年来,SAS一直占据着统计软件的高端市场,用户遍及金融、医药卫生、生产、运输、通讯、政府和教育科研等领域。在数据处理和统计分析领域,SAS系统被誉为国际上的标准软件,堪称统计软件界的巨无霸。
1.1.1 SAS简介 1. SAS与统计分析 在国际学术界有条不成文的规定,凡是用SAS统计分析的结果,在国际学术交流中可以不必说明算法,由此可见其权威性和信誉度。
2. SAS的版本介绍 SAS是在1960年代末期由两位北卡州立大学(North Carolina State University)统计系的教授开发.第一版的SAS只含一般线性模型的分析法,而且只适用于IBM的主机;1976年成立SAS公司负责软件的发展、维护并提供相关服务.PC版本的SAS于1987年推出(V6.02),1989年推出SAS/PC(V6.04)版本;1997年下半年推出适用于多种操作系统的V6.12版本(Windows版);2000年2月又推出SAS系统V8版本,2001年推出SAS系统V8.2版本;目前SAS最新版本为V9.01.
3. SAS的功能模块 SAS系统由三十几个模块组成,其分析功能散布在几乎所有的模块之中,较为集中的具有统计分析功能的是SAS/BASE、SAS/STAT、SAS/QC、SAS/INSIGHT、SAS/ETS等一些模块,通过编程可以调用各种分析功能。 对于常用的一些统计分析方法,SAS系统中的如下三种方法可以达到同样的目的: ● INSIGHT(“交互式数据分析”) ● Analyst(“分析家”) ● 直接编程
1.1.2 使用SAS 1. SAS的启动 在Windows环境中,用如下方法可以进入SAS系统的窗口运行环境: ● 用鼠标选择系统菜单项:“开始”→“程序”→“The SAS System” → “The SAS System for Windows V8” ● 如果SAS安装系统在桌面上建立有快捷方式图标,双击SAS.EXE图标启动SAS。 ● 生成SAS.EXE的快捷方式(把SAS.EXE用鼠标右键拖到桌面),双击SAS.EXE图标启动SAS。
2. SAS的操作界面 SAS系统启动后,进入SAS操作界面。SAS操作界面的标准名称为SAS Application WorkSpace(SAS应用工作空间),简称SAS AWS。 如同其它许多 Windows应用程序一样, SAS AWS是一个多窗口 界面:在一个主窗口内 包含若干个子窗口,并 有菜单栏、工具栏、状 态栏等。
(1) 子窗口 SAS V8.2的子窗口有十几个,但初始状态下能见到的是最常用的五个子窗口: ● Editor窗口:增强的程序编辑器。 通常,在Editor窗口输入SAS程序,选择菜单项“Run”→“Submit”,或者直接点击工具栏上的按钮就可以运行程序。 用功能键F5或选择菜单项“View”→“Enhanced Editor”可以打开Editor窗口。
● Log窗口:记录程序的运行情况。 用功能键F6或选择菜单项“View”→“Log”可以打开Log窗口。 ● Output窗口:显示SAS程序中各过程的运行结果。 用功能键F7或选择菜单项“View”→“Output”可以打开Output窗口。 ● Results窗口:管理SAS程序的输出结果。 选择菜单项“View”→“Results”可以打开Results窗口。
● Explorer窗口:管理SAS逻辑库和存放在逻辑库中由SAS系统创建的数据文件和其它类型的SAS文件。 选择菜单项“View”→“Explorer”可以打开Explorer窗口。
(2) 菜单栏 SAS主窗口标题栏下是主菜单。SAS菜单是动态的,其内容随上下文而不同,即光标在不同窗口其菜单也不同。 (3) 工具栏 工具栏也是动态的,当光标在编辑窗口时工具栏图标的解释如表1-1。 其中提交程序按钮最为常用,点击该按钮即可运行Editor窗口中的SAS程序。
3. SAS的退出 (4) 状态栏 SAS界面的状态栏中显示当前工作目录,这是文件打开、保存的缺省目录。双击此处可以更改当前工作目录。 在SAS应用工作空间中用鼠标单击关闭按钮,或者选择菜单“File”→“Exit”,打开“Exit”对话框,单击“确定”按钮,即可退出SAS。
1.1.3 SAS对数据文件的管理 在SAS系统中建立的众多SAS文件,可按不同需要将其归入若干个SAS逻辑库,以便对SAS文件进行访问和管理。Explorer窗口可以管理逻辑库和各种SAS文件,一般的,对于SAS文件的复制、查看和删除等操作。
1. 逻辑库和SAS文件 一个逻辑库就是存放在同一文件夹中的一组SAS文件。 在SAS系统的信息组织中,总共只有两个层次:SAS逻辑库是高一级的层次,低一级的层次就是SAS文件本身。 SAS的逻辑库分为临时库和永久库两种。 临时库只有一个,名为Work,存放在Work中的SAS文件叫临时文件,这些临时文件当退出SAS系统时会被自动删除。
SAS每次启动时会自动指定4个库标记:Work,Sasuser,Sashelp,Sasmap。Sasuser库保存与用户个人设置有关的文件,Sashelp库保存与SAS帮助系统、例子有关的文件。 在Explorer窗口中,单击工具按钮,或是在右键菜单中选择“New”,打开“New Library”对话框,可以建立新库,见图1-3。如果选中“Enable at startup”复选框,则每次打开SAS时所建逻辑库都有效。
SAS文件是指储存在SAS逻辑库中的成员,SAS的用户文件的主要类型有: 访问一个SAS文件,一定要指明它所在的逻辑库,格式为:逻辑库名.文件名。如在Sasuser库下建立一个名为Mydata的数据集,访问的时候,要用Sasuser.mydata。 如果不指明逻辑库名,则表示存储在临时逻辑库WORK中的SAS文件。
2. SAS的名字 SAS的名字(数据集名、变量名、逻辑库名等等)有以下命名规则: 1) 由英文字母、数字、下划线组成; 2) 第一个字符必须是字母或下划线; 3) 不区分大、小写字母。 另外,SAS逻辑库名最多用8个字符;数据集和变量的名字最多用32个字符。
3. SAS数据集 SAS的核心是SAS数据集。SAS数据集是SAS文件的一种,一般由以下两部分组成: (1) 描述部分 包含该数据集的一般信息,包括:数据集的名字及其成员类型、数据集建立的日期和时间、观测的数目、变量的数目以及数据集中每一个变量的特征信息,包括:Name(变量名)、Type(类型)、Length(长度)、Format(输出格式)、Informat(输入格式)、Label(标签)。
(2) 数据部分 包含该数据集中收集的数据的值,可以看作是一个矩形的表格。下图所示的数据表就是SAS V8自带的数据集Sasuser.Class,其中包含了19个学生的有关信息。
4. 数据集的导入 导入Excel数据表的步骤如下: 1) 在SAS应用工作空间中,选择菜单“File”→“Import Data…”,打开导入向导“Import Wizard”第一步:选择导入类型(Select import type)。 2) 在第二步的“Select file”对话框中,单击“Browse”按钮,在“打开”对话框中选择所需要的Excel文件,返回。然后,单击“Option”按钮,选择所需的工作表。
4. 数据集的导入 导入Excel数据表的步骤如下: 3) 在第三步的“Select library and member”对话框中,选择导入数据集所存放的逻辑库以及数据集的名称。 4) 在第四步的“Create SAS Statements”对话框中,可以选择将系统生成的程序代码存放的位置,完成导入过程。
1.2 初识INSIGHT模块 1.2.1 调用INSIGHT模块 1.2.2 INSIGHT的功能概述 1.2.3 数据的预处理操作
1.2.1 调用INSIGHT模块 有如下两种方法可以调用INSIGHT模块: 方法一:在命令行键入“Insight” 方法二:在菜单中选择“Solution(解决方案)”“Analysis(分析)”→“Interactive Data Analysis(交互式数据分析)”。
INSIGHT提供了一个类似于电子表格的数据窗口来管理数据集。图1-10为显示了数据集SASUSER.CLASS的数据窗口。 变量个数 数据窗菜单 观测个数 绘点符号 观测序号 变量作用 变量名称
在SAS数据集中,变量分为两种类型:字符型变量和数值型变量。在INSIGHT中,为了区分变量在分析中的不同作用,又按变量的测量水平分为两类: ● 区间型变量(interval variable):区间型变量必须是数值型变量,可以对其观测值进行四则运算,计算各种统计量; ● 列名型变量(nominal variable):列名型变量可以是数值型的,也可以是字符型的,在INSIGHT中常起分类作用。
1.2.2 INSIGHT的功能概述 INSIGHT是一个交互式的数据探索和分析的工具,用这一模块可以: ● 通过多窗口连动的图像和分析结果,对数据进行探索; ● 分析单变量分布; ● 用相关和主成分研究多变量间的关系; ● 用方差分析和回归分析拟合变量间关系的模型; INSIGHT的各项功能可以在菜单中找到。
INSIGHT的一般操作步骤为: 1) 打开数据窗口,在数据窗口对数据表进行各种预处理; 2) 在“Analyze(分析)”菜单中选择相应的菜单项,进行分析; 3) 查看各种分析结果。
1.2.3 数据的预处理操作 1. 在数据窗中移动列 1) 单击数据窗口左上角处的三角按钮,打开数据窗菜单,选择“Move to First(移到最先)”,在弹出的“Move to First”对话框中,选择欲移动到首列的变量,单击“OK”按钮,即可将该变量移到第一列。 将某个变量移到最后一列(Move to Last)的操作,可类似进行。
1.2.3 数据的预处理操作 1. 在数据窗中移动列 2) 移到某两列中间:选择主菜单“Edit”→“Windows”→“Tools”,打开“Tools”对话框。 单击手形按钮,光标变为手形,鼠标指向移动变量的顶部,按住鼠标左键拖动到适当的地方即可
2. 对数据集排序 单击数据窗口左上角处的三角按钮,打开数据窗菜单,选择“Sort”,在打开的“Sort”对话框中,选择排序的变量,单击“Y”按钮,将变量选定,然后按“OK”按钮即可。可同时根据多个变量进行排序,默认是升序排序,可单击Asc/Des切换到降序。
3. 创建新的变量 选择主菜单“Edit”→“Variables”→“Other”,打开“Edit Variables”对话框,可通过原变量的关系定义新的变量。如:根据学生体重与身高之比建立新变量D_weight: 1) 选中变量weight,单击“Y”,选中变量height,单击“X”; 2) 在“Transformation”列表框中选择运算:Y/X; 3) 在“Label”栏中注明:体重身高比; 4) 最后单击“OK”按钮,即可增加新变量列。
4. 建立数据集的子集 下述方法可以建立当前已打开数据集的子集。如欲找出所有男生的观测: 1) 选择主菜单“Edit” → “Observations” → “Find”,打开“Find Observations”对话框,确定建立新数据表的关系式; 2) 在变量名称列表中选择sex,在Value(值)列表中选择M,单击“OK”按钮;数据窗口中所有男生的观测被选中; 3) 单击数据窗口左上角处的三角按钮,打开菜单,选择“Extract”,生成新数据集;
4. 建立数据集的子集 4) 若要保存数据集,选择菜单“File” → “Save” → “Data”,在打开的“Save Data”对话框中选择保存的逻辑库名,并输入数据集名,单击“OK”按钮即可。
5. 直接输入数据建立新数据表 在INSIGHT中创建新数据表的步骤如下: 1) 选择主菜单“File”→“New”,即可建立一个新数据集; 2) 单击数据窗口左上角处的三角按钮,打开菜单,选择“New Variables”,在打开的对话框中输入变量个数;再选Define Variables,在打开的对话框中输入变量名称(Name)及其它属性,单击“OK”按钮即可;
5. 直接输入数据建立新数据表 在INSIGHT中创建新数据表的步骤如下: 3) 在单元格内输入数据,每输入一个数据后按Enter键确认; 4) 选择菜单“File”→“Save”→“Data”,在打开的“Save Data”对话框中选择保存的逻辑库名,并输入数据集名,单击“OK”按钮即可保存新建的数据集。
1.3 初识“分析家” 1.3.1 调用“分析家” 1.3.2 功能概述 1.3.3 “分析家”的有关操作
1.3.1 调用“分析家” 可以用下面两种方法启动“分析家”,打开“分析家”窗口: 方法一:在命令行中输入“Analyst” 1.3.1 调用“分析家” 可以用下面两种方法启动“分析家”,打开“分析家”窗口: 方法一:在命令行中输入“Analyst” 方法二:选择主菜单“Solutions(解决方案)” → “Analysis(分析)”→“Analyst(分析家)”
1.3.2 功能概述 “分析家”的菜单功能如下: ● File(文件)菜单提供了有关数据文件的新建、读、写、文件的导入和导出、打印和传输等功能; ● Edit(编辑)菜单提供了有关修改当前文件内容的一些选项; ● View(查看)和Data(数据)菜单提供了对读入数据集进行加工的一些功能,例如,对数据集行列的增删,行列的排序,行列的转置和对数据集的随机取样等;
1.3.2 功能概述 “分析家”的菜单功能如下: ● Graphs(图形)菜单提供了图形功能,包括直方图、盒形图、等高线图、三维散点图和曲面图等; ● Statistics(统计)菜单提供了主要的统计分析功能,包括描述统计量计算、列联表分析、假设检验、方差分析和回归分析等。
1.3.3 “分析家”的有关操作 l. 打开数据集 选择主菜单“File(文件)”→“Open By SAS Name”,打开“Select A Member”对话框,选择一个数据集作为项目的成员。
2. 导入Excel数据表 步骤如下: 1) 选择主菜单“File(文件)”→“Open…(打开)”,在打开的对话框中,选择文件类型为“Microsoft Excel Spreadsheet”; 2) 选定Excel工作簿文件,单击“打开”按钮,打开“SAS Import:Spreadsheet Options”对话框,在“Worksheet/Range”下拉列表中选择工作表名称,单击“OK”按钮即可;
2. 导入Excel数据表 3) 选择主菜单“File(文件)”→“Save As By SAS Name…”,在打开的“Save As”对话框中,选择所要保存的逻辑库名,并输入数据集名,单击“Save”按钮即可。
3. 浏览和编辑 已打开的数据集可处于浏览(Browse)或编辑(Edit)两种不同的方式,浏览方式只允许显示数据集的内容,编辑方式允许修改数据表的内容。 可以通过选择菜单“Edit”→“Mode(模式)”→“Edit(编辑)”或“Edit”→“Mode(模式)”→“Browse(浏览)”进行切换。
4. 改变变量显示的次序 选择菜单“View(查看)”→“Columns(列)” → “Move(移动)”,打开“Move Columns”对话框。在列表中选择变量名后,使用上下箭头,按“OK”按钮后,即可改变变量显示的次序。
5. 对数据集排序 对数据集排序的方法如下: 1) 在“Edit(编辑)”方式下,选择菜单“Data(数据)”→“Sort(排序)”,打开“Sort(排序)”对话框; 2) 选中欲排序的变量名,单击“Sort By”按钮,将排序变量选入右框,可选多个变量; 3) 在右列表框中,选中排序变量,单击“Ascend/Descend”按钮可以在升序或降序之间切换。
6. 创建新的变量 在数据集中有两种方式添加新的变量。 ● 直接插入变量:选择菜单“Edit(编辑)”→“Insert Columns(插入列)”→“Character”或“Numeric”,——指定插入变量的类型——即可在数据集中插入一个新的变量。 ● 根据原变量的关系得到新变量: 选择菜单“Data(数据)”→“Transform(变换)”→“Compute(计算)”,打开“Compute(计算)”对话框;在对话框中确定变量关系式。
7. 创建数据集的子集 打开一个数据集后,选择菜单“Data(数据)”→“Filter(过滤)”→“Subset Data(子集数据)”,打开“Subset”对话框;在列表中选择变量,在弹出的“Operators(算子)”列表中选择算子(比如EQ表示“等于”); 用鼠标单击列表框中的“<LOOKUP distinct values>”,再在弹出的“Lookup Values”对话框中选择该变量的可能取值; 单击“OK”按钮,即可生成子集。
8. 由数据集随机抽样 选择菜单“Data(数据)”→“Random Sample(随机抽样)”,在打开的“Random Sample”对话框中,可设定样本的容量或抽取的比例(Ratio)。例如,创建一个容量为10的样本时的设置。 若要保存生成的样本,可以选择菜单“File(文件)”→“Save As By SAS Name(另存为SAS)”。
9. 数据集的转置 在SAS许多具有分析功能的过程中,有时需要将数据阵转置。方法如下: ● 将行列进行对换(整个进行): 选择菜单“Data(数据)”→“Transpose(转置)”,打开“Transpose(转置)”对话框; 在对话框中,选择列表中的变量名,单击“Transpose”按钮,将变量名一一选入右上框; ● 按某个变量的值分组进行: 在“Transpose(转置)”对话框中,可把某个变量的值选入右下框(Group By)。
1.4 SAS编程初步 1.4.1 SAS程序概述 1.4.2 指定逻辑库 1.4.3 数据步简介 1.4.4 过程步简介
1.4.1 SAS程序概述 1. 数据步与过程步 SAS程序包括多个步骤和一些控制语句,一般情况下由两种类型的程序步(steps)组成:数据步(DATA steps)和过程步(PROC steps)。有时SAS程序还包括一些全程语句,用以控制贯穿整个SAS程序的某些选项、变量或程序运行的环境。
1.4.1 SAS程序概述 1. 数据步与过程步 ● 数据步通常用于创建SAS数据集,但也可以用于产生特别设计的报表。 一个SAS程序就是由数据步、过程步或两者的任意组合而成。每一个程序步通常由若干语句(statements)构成。
2. 书写规则 一个SAS语句有两个重要特征: ● 由SAS关键词(keyword)开始; ● 总是以分号“;”结束。
data c200501; input name $ sex $ math chinese; cards; 李家富 男 92 98 张丽萍 女 89 106 王春雷 男 86 90 刘刚 男 98 109 张颍 女 80 110 ; proc print data = c200501; proc means data = c200501 mean; var math chinese; run;
说明: 1) 一个数据步由关键词DATA开始,而一个过程步由关键词PROC开始。 2) SAS语句是自由格式的:一个语句可以由几行组成,可以在任一列开始和结束,几个语句可以在同一行内。SAS每看到一个分号,就将其以前、上一个分号以后的所有字符当作一条语句来处理,而不管它们处在多少个不同的行中(如代码中的二三两行为一个语句)。
说明: 3) SAS语句对字母的大小写不敏感,可以根据个人习惯决定字母的大写或小写。 4) SAS语句中的词之间用空格或特殊符号分隔。
3. SAS程序中的注释 在SAS程序中可以加入注释,注释使用C语言语法,用/*和*/在两端界定注释,这种注释可以出现在任何允许加入空格的位置,可以占多行。另一种注释是把以星号开头的行作为注释。一般只把注释单独占一行或若干行,不把注释与程序代码放在同一行。注释的另一个作用是把某些代码暂时屏蔽使其不被运行。下面是一个注释的例子: /*生成2005级1班考试成绩的数据集*/ data c200501;
4. SAS程序的提交 SAS程序在Editor窗口中编写,欲使SAS运行所编写的程序,就需要“提交(submit)”,单击热键F8,或者选择菜单项“Run”→“Submit”,或者直接点击工具栏上的按钮均可以提交程序。 当一个SAS程序被提交(submit)时,每一个DATA、PROC或RUN语句会导致前面的程序步被执行。所以,一个SAS程序应以RUN语句结束,否则,最后一个程序步不会被执行。
每一个程序步被分别执行。执行时,SAS系统会产生 一个日志(log窗口),记录执行过程中的信息和可能 发生的任何错误。执行的结果根据SAS程序的不同而有 所不同: ● 通常SAS程序包括一些过程步,它们会创建报表形式的输出(Output窗口)。 ● 有些SAS程序执行诸如排序或数据处理过程,除了在日志中的记录之外,不产生可见的输出结果。
1.4.2 指定逻辑库 1. 一个逻辑库连接一个文件夹 建立逻辑库,又称为指定逻辑库,其实质是把一个库名和一个实际文件夹联系起来,指定逻辑库的命令语句为全程语句,其格式如下: LIBNAME <逻辑库名> "<路径>"; 例如指定的库名为“Mylib1”,路径为:“e:\data\”,SAS语句如下: libname mylib1 "e:\data\";
1.4.2 指定逻辑库 2. 一个逻辑库连接多个文件夹 Libname语句不仅可以为一个物理位置(实际文件夹)指定逻辑库名,也可以为多个物理位置指定逻辑库名,其格式如下: LIBNAME <逻辑库名> ("<路径1>" "<路径2>" …);
1.4.3 数据步简介 1. 建立SAS数据集 利用数据步建立SAS数据集,有两种方式可以输入数据:一是将数据排列在变量名串之后;二是指定一个外部数据文件供读取。
第一种方式的一般语法为: DATA <数据集名>; INPUT <变量名1>[$] <变量名2>[$]… <变量名k>[$]; CARDS; d11 d12 …d1k d21 d22 …d2k …. … ; RUN;
例如: data f2005; input number name $ @@; cards; 200541001 zhao 200541002 qian 200541003 sun 200541004 li ; run;
第二种方式的一般语法为: 例如: DATA <数据集名>; INFILE '<文件名>'; INPUT <变量名1> <变量名2>… <变量名k>; RUN; 例如: data c200501; infile 'g:\data\c2005.txt'; input name $ sex $ math chinese; run;
2. 数据集的复制与修改 可以用SET语句把一个已有数据集复制到一个新数据集,同时还可以进行修改。如果只是复制数据集,也可以用SAS管理器(SAS Explorer)完成。SET语句的语法格式有两种,有些功能有重复。
格式一: DATA <新数据集名>; SET <数据集名>; [KEEP <欲保持的变量名列表>;] [DROP <欲丢弃的变量名列表>;] [IF <条件> [THEN <语句>];] RUN;
格式二: DATA <新数据集名>; SET <数据集名>[<选项>]; [IF <条件> [THEN <语句>];] RUN;
3. 拆分数据集 使用SET和OUTPUT语句可以根据某一分类原则把数据行分别存放到不同的数据集,语法格式为: DATA <新数据集1> <新数据集2> …; SET <数据集名>[<选项>]; [WHEN(<条件1>) OUTPUT <新数据集1>;] [WHEN(<条件2>) OUTPUT <新数据集2>;] … RUN;
比如,希望把数据集c200501中的所有男生的观测放到数据集c200501m中,把所有女生的观测放到c200501f中,可以使用如下程序: data c200501m c200501f; set c200501; select(sex); when('男') output c200501m; when('女') output c200501f; otherwise put sex= '有错'; end; drop sex; run;
4. 数据集的纵向合并 使用SET语句可以将几个结构相同的数据集上下连接到一起。其语法格式为: DATA <新数据集名>; SET <数据集1>[(IN=<变量名1>)] <数据集2>[(IN=<变量名2>)] …; [IF <变量名1> = 1 THEN <变量名>=<值1>;] [IF <变量名2> = 1 THEN <变量名>=<值2>;] … RUN;
比如,在前例中我们把c200501数据集按男、女拆分 成了c200501m和c200501f两个数据集并抛弃了性别变量, 可以用如下程序连接两个数据集并恢复性别信息: data new; set c200501m(in=male) c200501f(in=female); if male=1 then sex='男'; if female=1 then sex='女'; run;
5. 数据集的横向合并 两个(或多个)数据集如果包含了同样的一些观测的不同变量,且各数据集的观测按顺序是一一对应的,就可以用如下带有MERGE语句的数据步把它们左右横向合并到一个数据集,其语法格式为: DATA <新数据集名>; MERGE <数据集列表>; [BY <变量1> [<变量2>…]]; RUN;
比如,数据集c200501u包含学生的姓名、性别,数据 集c200501v包含学生的数学成绩,数据集c200501w包含 学生的语文成绩,且各数据集的观测是按顺序一一对应 的,就可以用如下带有MERGE语句的数据步把它们左 右横向合并到一个数据集New: data new; merge c200501u c200501v c200501w; run;
1.4.4 过程步简介 1. SAS过程步的一般形式 SAS过程步的一般形式为: 1.4.4 过程步简介 1. SAS过程步的一般形式 SAS过程步的一般形式为: PROC <过程名> [DATA=<输入数据集>] [<选项>]; <过程语句>/<选项>; RUN;
2. 过程步常用语句 (1) VAR语句 VAR语句在很多过程中用来指定分析变量,其格式为: VAR <变量名1> <变量名2> ... <变量名n>;
2. 过程步常用语句 (2) BY语句和CLASS语句 在使用带有BY语句的过程步之前一般先用SORT过程对数据集排序。
(3) OUTPUT语句 OUTPUT OUT = <输出数据集名> <关键字>=<变量名> <关键字>=<变量名>...; 其中用OUT=给出了要生成的结果数据集的名字,用“关键字=变量名”的方式指定了输出哪些结果(关键字是如MEANS过程中的MEAN,VAR,STD那样的要输出的结果名),等号后面的变量名指定了这些结果在输出数据集中叫什么名字。
(4) WHERE语句 用WHERE语句可以选择输入数据集的一个行子集来进行分析,在WHERE关键字后指定一个条件。其格式为: WHERE <条件>;
过程步中的FORMAT语句可以为变量输出规定一个输出格式,比如: (5) FORMAT语句和LABEL语句 过程步中的FORMAT语句可以为变量输出规定一个输出格式,比如: proc print data=c200501; format math 9.1 chinese 9.1; run; 使得列出的数学、语文成绩宽度占9位,带一位小数。 LABEL语句为变量指定一个临时标签,很多过程可以使用这样的标签。LABEL语句的格式为: LABEL <变量名>='<标签>' <变量名>='<标签>'...;
3. 输出列表过程PRINT PRINT过程是最常用的SAS过程之一,在生成一个数据集之后,如果不是太大,一般都用PRINT过程来列出数据集的内容,这样可以检查变量与值之间的对应是否正确,数据输入是否正确。其语法格式为: PROC PRINT [DATA = <数据集>] [NOOBS]; [VAR <变量列表>;] [WHERE <表达式>;] RUN;
1) 在PROC语句中使用“DATA=选项”指定要列表的数据集名;NOOBS选项指定不输出观测号; PROC PRINT [DATA = <数据集>] [NOOBS]; [VAR <变量列表>;] [WHERE <表达式>;] RUN; 其中: 1) 在PROC语句中使用“DATA=选项”指定要列表的数据集名;NOOBS选项指定不输出观测号; 2) VAR语句可以指定要列出的变量并指定顺序 3) WHERE语句可以从输入数据集中选一个子集来处理
4. 数据排序过程SORT 在SAS过程中用BY语句可以把观测分类进行处理,但在此之前需要先用SORT过程排序。SORT过程可以把数据集按某一个或若干个变量的次序进行排序。其语法格式为: PROC SORT [DATA = <数据集>] [OUT = <输出数据集名>]; [BY <变量列表>;] RUN;
其中DATA选项指定的数据集为输入数据集,OUT选项指定的数据集为输出数据集。若省略OUT选项,则输出数据集与输出数据集为同一个数据集。 PROC SORT [DATA = <数据集>] [OUT = <输出数据集名>]; [BY <变量列表>;] RUN; 其中DATA选项指定的数据集为输入数据集,OUT选项指定的数据集为输出数据集。若省略OUT选项,则输出数据集与输出数据集为同一个数据集。 BY语句中在一个变量名前面加上DESCENDING关键字表示此变量的排序是由大到小的。
5. 格式化过程FORMAT FORMAT过程可以设定数据的输出格式,对变量的不同值或不同范围的值设定不同的“标签”来显示,其语法格式如下: PROC FORMAT; VALUE <格式名> <范围1> = '<标签1>' <范围2> = '<标签2>' ……; RUN; 其中格式名的命名规则与逻辑库名相同。
可以指定自己的标题来取代SAS缺省的标题。指定标题的TITLE语句的格式为: 6. 标题及全程语句 可以指定自己的标题来取代SAS缺省的标题。指定标题的TITLE语句的格式为: TITLE '<标题内容>'; 要注意的是,TITLE语句是一个“全程”语句。全程语句与一般语句不同,一般语句必须用在数据步或过程步内,作为数据步或过程步的一部分,而全程语句则既可以用在数据步和过程步内,又可以单独使用(在数据步、过程步外部)。
全程语句的作用一般有持续性,即:全程语句的效果 将持续到退出SAS系统或用另一个同样的全程语句来修 改它。 另一个全程语句OPTIONS语句可以规定系统运行的一些选择项,比如输出是否每页有页号,是否有日期,输出的行宽,输出每一页的高度(行数),等等。