1、SAS统计分析软件,岑倩青,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,2,学习目的,1.了解SAS系统的功能特点; 2.熟悉SAS系统的操作环境; 3.掌握SAS系统的有关概念; 4.学会使用DATA 步建立数据集,能对现有数据集进行基本操作; 5.学会使用PROC 步的基本过程对数据集进行常规的统计分析; 6.学会自己查看系统帮助;,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,3,主要内容,1.SAS概述; 2.SAS显示管理系统; 3.SAS编程基础: SAS语句;SAS表达式;SAS常量; SAS变量;SAS算符;SAS函数; 4.DADA 步(
2、数据步); 5.PROC 步(过程步);,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,4,第一章SAS系统概述,SAS系统是世界领先的信息系统,它由最初的用于统计分析经不断发展和完善而成为大型集成应用软件系统,具有完备的数据存取、管理、分析和显示功能。在数据处理和统计分析领域,SAS系统被誉为国际上的标准软件系统。 SAS系统于1966年由美国North Carolina州立大学开始研制,1976年成立美国SAS软件研究所公司,并开始对SAS系统进行维护、开发、销售和培训等工作。1985年推出了SAS/PC(6.02)版本。自SAS系统推出以来,它的版本更新很快,功能也不断
3、增加,1998年推出6.12版,现在已有9.2版面世。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,5,美国SAS软件研究所自创建以来,就以SAS系统的卓越功能和可靠的技术支持著称于世,逐步发展成为全球最大的独立软件开发商之一。目前SAS软件研究所在世界六大洲的60个国家设有分公司及分支机构。世界上有119个国家和地区的29000多个机构在使用SAS系统,直接用户超过三百万。SAS系统在世界范围内被广泛地应用于政府、科研、教育、生产和商业等不同领域,发挥着积极的作用。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,6,1 SAS系统的特点,SAS系统:SA
4、S系统是一个模块化的集成软件系统。所谓软件系统就是一组在一起作业的计算机程序。使用SAS系统的用户可以根据自己的需要,随时作出明智的选择。SAS系统是一种组合软件系统。基本部分是Base SAS软件,此外还有用于统计分析的SAS/STAT软件;用于高级绘图的SAS/GRAPH软件;用于矩阵运算的SAS/IML软件;用于运筹学和线性规划的SAS/OR软件;用于经济预测和时间序列分析的SAS/ETS软件等。 SAS系统的特点: 操作简便:SAS的宗旨是为所有需要进行数据处理、数据分析的非计算机专业人员提供一种易学易用、完,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,7,整可靠的
5、软件系统。用户把要解决的问题用SAS语言(近乎自然英语的非过程语言)表达出来,组成SAS程序,提交给SAS系统就可以解决所提出的问题。执行情况和输出结果都在屏幕上显示出来。 SAS系统将数据管理与统计分析溶为一体:SAS程序的结构由两个基本步骤任意组合而成。DATA步用于对数据的加工处理;PROC步用于分析数据和编写报告。SAS系统克服了通常软件或偏重于数据管理功能或偏重于统计分析的弊病,把数据管理与统计分析有机地结合在一起。 适用性强、应用面广:SAS系统适用于任何经验的人员(初学者或有经验的用户);适用于任何类型的数据;适用于几乎是任何应用的需要;适用于任何计算机环境;适用于今日与未来(扩
6、展性能强)。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,8,2 Base SAS软件简介,Base SAS软件是SAS系统的核心。主要功能是数据管理和数据加工处理,并有报表生成和描述统计的功能。Base SAS软件可以单独使用,也可以同其它软件产品一起组成一个用户化的SAS系统。Base SAS软件提供以下几方面的功能: 数据管理功能 基础统计计算功能 报表生成和图形显示功能一 数据管理功能 信息存贮和检索:SAS系统可用任何格式读入数据值,然后把数据组成SAS数据集;并可用文件操作管理方法把不同数据集的数据组合在一起,供SAS过程分析处理;SAS数据集可用临时或永久数据
7、集两种形式存贮。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,9,数据修改与程序设计:SAS系统为用户提供完备的SAS语句和函数用于数据加工处理。有些语句用于执行标准操作,如建立新变量、累加求和等;另外还提供了DO/END、IF-THEN/ELSE等控制语句,构成一套完整的语言系统。由于Base SAS软件具有非常强的数据管理功能,所以许多人亦把它作为数据库管理系统。 文件操作:数据分析常常需要从几个数据集中抽取一些变量和观测进行组合。Base SAS软件中有用于对数据进行编辑、整理、连接、合并及更新的功能,还能同时处理多个输入文件,或者对一次输入的数据能够生成几种报表等。
8、 二 基础统计计算功能Base SAS软件中有一些基本过程和SAS函数能够完成基础统计计算,包括:,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,10,计算简单的描述统计量,如均值、标准差、极差、总和、平方和、偏度、峰度、分位数和相关系数等; 对数据进行标准化、求秩及有关统计量; 生成并分析列联表; SAS函数可用于计算概率分布函数、分位数、样本统计量及产生随机数。报表生成和图形显示功能 Base SAS软件输出数据与读入数据时同样可以采用任何格式。除了SAS过程产生的固定格式的报表外,用户可根据自己的需要来设计报表的输出格式,包括输出文件到磁盘上。 SAS的一些基本过程可绘
9、制水平的或垂直的直方图、饼图等,还可以画散点图、曲线图、层次图、时间序列图等。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,11,第二章 SAS显示管理系统,SAS显示管理系统也可以称为SAS窗口环境,因为它由一系列窗口组成。 SAS显示管理系统是一种通过这些窗口进行浏览和操作的交互式全屏幕工具。显示管理可以用于准备和提交一个程序、浏览结果、观察整个程序的执行记录,还可以对程序进行调试、修改并重新提交。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,12,1 窗口环境:SAS显示管理窗口可分为两大类:基本窗口和其它窗口。一基本窗口:包括PROGRAM ED
10、ITOR窗口(程序编辑窗,缩写为PGM)、LOG窗口(登录窗或日志窗)和OUTPUT(输出窗)三个窗口。各窗口的主要功能如下:,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,13,OUTPUT 窗口包含由大多数SAS过程产生的输出。在SAS会话期间相继产生的输出都附加到OUTPUT窗口内容中。,LOG窗口 当前会话发布的SAS语句;注释、警告和出错信息;数据处理的一些结果。,PGM 窗口 输入和编辑文本,包括SAS语句;提交SAS语句; 拷贝一个外部文件到PGM窗口,或拷贝窗口内容到外部文件上;,菜单栏,快捷 工具栏,编辑框,命令框,2019/2/13,SAS统计分析软件-显
11、示管理系统、编程基础,14,二其它窗口:除了三个基本窗口以外,显示管理包含很多其它窗口。各个窗口均可在任何一个窗口的命令行键入相应的命令来打开。下面按字母顺序列出包括三个基本窗口在内的主要显示管理窗口,并给出简单描述。命令行可通过以下方法方法调出在命令框中键入:PMENU,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,15,显示管理窗口,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,16,2 窗口菜单系统PMENU工具 PMENU工具(PMENU facility)是一个菜单系统,它替代命令行作为发布命令的一种方法。这个工具对于三个基本窗口是默认的。在PME
12、NU工具的菜单栏上可以典型地找到下列一些项目: FILE:让用户拷贝和存贮目录、文件和外部文件。它还让用户退出当前窗或SAS会话; EDIT:允许用户执行编辑任务,以及寻找和改变及剪切、粘贴文本; VIEW:允许用户更改显示的呈现; LOCALS:允许用户在PROGRAM EDITOR窗口提交和再调用文本; GLOBALS:允许访问窗口并允许恢复命令行; HELP:访问HELP和KEYS窗口。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,17,几个重要的操作命令: 1)窗口切换命令:PGM | F5:切换到PGM窗口LOG | F6:切换到LOG窗口OUTPUT | F7:
13、切换到OUTPUT窗口 2)编辑命令:CLEAR | Ctrl+E:清除当前工作窗口的信息 3)文件管理命令: INFILE :定义一个外部文件,这个文件中的数据是用INPUT语句读取的(即与INPUT语句同时使用)。例如:INFILE C:mm.txt;INPUT X Y;是读取C盘根目录下一个名为mm.txt的文件上数据。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,18,4)程序管理命令:SUBMIT | F3F8:将PGM窗中的所有程序提交运行。注:如果需将PGM窗中的某几段程序提交运行,则可使用屏蔽符/*/将不需要运行的程序屏蔽起来,然后再执行SUBMIT命令。R
14、ECALL | F4:将运行过的程序调回到 PGM窗口。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,19,第三章 SAS编程基础,同其它计算机语言一样,SAS语言也有它自己的语汇和句法:关键词和连结关键词与其它辅助信息的规则。用户使用SAS语言来定义数据和规定对数据怎样做统计分析的问题。由SAS语句组成的序列称为SAS程序。 SAS程序由两步组成:,data步,Data数据输入与整理模块,proc步,数据的分析模块,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,20,表1 某小学6名9岁男生3项智力测验得分,1 SAS语句 一、SAS语句的定义 我们先来
15、看一个实例:某小学6名9岁男生3个项目智力测验得分资料如下试计算这6名男生各项目的平均得分。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,21,Data zhili; input name $ x1 x2 x3; cards; Zhang 14 13 28 Li 10 14 15 Liu 19 14 22 Yang 9 10 14 Zeng 9 8 25 He 9 9 12 ; Proc print data=zhili; Proc means data=zhili; var x1 x2 x3; run;,在这个例子中,我们看到: data, input, cards, p
16、roc, var, run是关键词; zhili是数据集名; name, x1, x2, x3是变量名; means是过程名; data=是means语句中的选项; $是特殊字符。,现在,我们给出SAS语句的定义:SAS语句是由关键词、SAS名、特殊字符或运算符组成并以分号结尾的字符串。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,22,二 几个概念 1.SAS关键词位于句首的用以说明语句类型和功能的单词称为SAS语句的关键词。它是SAS语句的主要成份。 2.SAS名SAS语句中出现的SAS名有很多种类,如变量名、SAS数据集名、过程名等。 SAS名最多可由8个字符组成;
17、第一个字符必须是字母或下划线,其余的字符可以是字母、数字或下划线; SAS名中不能出现空格、特殊字符(如$、#等); SAS系统保留了一些名字作为特殊的变量名,这些变量名的开头和结尾都用特殊字符下划线表示(如_N_、_ERROR_等)。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,23,三 语句格式SAS语句的基本格式是: KEYWORD Parameter item | item | item options; 关键词 参数 选项1 选项2 选项3 选择值 关键词:用以说明语句类型和功能的单词; 参数:要求用户提供的信息。不用括号,不是任选项。例如: input x y
18、z; 其中:input 是关键词,它说明要把数据提供给哪些变量。后面跟的变量名x、y、z 都是参数,即要求用户提供的信息。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,24,表示参数可以不止一个。 选项1 | 选项2 | 选项3 中的竖线|用来分隔各选择项,表示其中任选一个;方括号内的信息是可以选择的。 例如:proc means data=store maxdec=3; 其中:proc是语句的关键词,它说明本语句是过程语句;means是过程名,它说明要调用的过程名称;data=、maxdec=都是选项的关键词,等号后面是用户提供的信息。 2 SAS程序一系列SAS语句组成
19、一段SAS程序。SAS程序中的语句可分为两类步骤:DATA步和PROC步。这两类步骤是所有SAS程序的模块。DATA步用于产生SAS数据集,,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,25,而PROC步用于对SAS数据集内的数据进行分析处理并输出结果。一段SAS程序可由一个DATA步或一个PROC步组成;或者由DATA步和PROC步两部分组成;也可由多个DTAT步和多PROC步组成。 一 DATA STEP(数据步)DATA步包括:创建一个或几个新的SAS数据集的语句和创建数据集所必须的运算操作语句。每个DATA步以DATA语句开头,可以包含任意多个SAS程序语句。一个D
20、ATA步的基本语句有: DATA语句:表示创建SAS数据集; INPUT语句:对SAS数据集中的变量进行描述; CARDS语句:用来指示数据行的开始; ;语句(空语句):表示数据行的结束。 例如:,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,26,Data zhili; input name $ x1 x2 x3; cards; Zhang 14 13 28 Li 10 14 15 Liu 19 14 22 Yang 9 10 14 Zeng 9 8 25 He 9 9 12 ; Run;,DATA语句: 表示创建SAS数据集; INPUT语句: 对SAS数据集中的变量进行
21、描述; CARDS语句: 用来指示数据行的开始; ;语句(空语句): 表示数据行的结束。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,27,二 PROC STEP(过程步)PROC步要求SAS系统从过程库中调出一个过程模块并执行它。PROC步以PROC语句开始,可以包含多个相应的SAS语句。 例如: Proc means data=zhili; var x1 x2 x3;注意:一个完整的SAS程序必须以run语句结尾方能提 交运行。如: Proc means data=zhili; var x1 x2 x3; Run;,三 SAS数据集一个SAS数据集是一批数据值,排列成下
22、表形式:,变量,字符变量,数值变量,观测,数据值,临时数据集:退出SAS会话后数据集自动被删除 永久数据集:退出SAS会话后数据集保存在硬盘,1、临时数据集data 数据集名;如:data qq;临时数据集qq在SAS会话期间存放于临时数据库work中。 2、永久数据集 libname 库标识 DOS操作系统下的某个目录名data 库标识.数据集名如:libname old D:SAS;data old.qq;产生的SAS数据集是一个永久的SAS数据集,名字为qq,存放于D盘的SAS目录下。(前提是SAS目录必须存在),2019/2/13,SAS统计分析软件-显示管理系统、编程基础,30,三
23、SAS程序的书写方法 1. 书写格式 SAS语句可以从一行上的任意位置开始; 几个SAS语句可以写在同一行上; 一个语句也可以写成几行,只要语句中的单词不被断开即可; 在一个语句中各项之间至少要有一个空格; 一些特殊符号(如等号=,加号+)可以占据空格的位置,如: total=a+10; 与 total= a + 10 ; 是等价的; SAS语句用大写字母、小写字母或大、小写混合书写均可。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,31,2. 注释(屏蔽符)SAS语句中有一个注释语句,形式为: /*注释内容*/凡是空格可以出现的地方,以上形式的注释语句也能出现。例如: p
24、roc sort /*对数据集排序*/; 就是一个合法的语句。需要注意的是,注释符/*/内的字符在程序运行中不被执行。因此,注释符又称为屏蔽符。*一个SAS语句/*SAS语句*/ 具有同等的屏蔽效果。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,32,4 SAS程序的执行与输出 一 程序的执行当我们在PGM窗口将程序输入完毕,检查修改后就可以提交给SAS系统执行。在LOG窗口显示程序执行中记录的信息,它包括:执行哪个语句;生成的数据集中变量个数及观测个数是多少;每一步花费的时间及出错信息等。 二 SAS过程的输出前例提交执行以后,DATA步产生一个名为zhili的SAS数据
25、集;PROC步产生的结果输出到OUTPUT窗口。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,33,5 SAS函数 一 .SAS函数的定义SAS函数是一个子程序,它由0个或几个自变量返回一个结果值。每个SAS函数都有一个关键词名字。为了引用函数,要写出它的名字,然后写出一个自变量或几个自变量,它们用括号括起来,这个函数对这些自变量执行某种运算。SAS函数的形式functionname(argument,.)例如: INT(1.453) SUM(X1,X2)MIN(SUM(cash,credit),1000),2019/2/13,SAS统计分析软件-显示管理系统、编程基础,3
26、4,二 SAS函数自变量和结果 1. SAS函数的自变量1) 自变量的类型:自变量可以是简单的变量名、常数或者表达式。这个表达式还可以包含其它的函数。例如:m=max(cash,credit)n=sqrt(2500)h=min(sum(of x1-x10),y),2019/2/13,SAS统计分析软件-显示管理系统、编程基础,35,2) 自变量的个数:有些函数不需要自变量(如DATE(),有些只需要一个自变量,有些函数是对几个自变量作分析处理。所有函数都不允许超过2000个自变量。如果函数的自变量是表达式,则先计算作为自变量的表达式。如:LOG(x+y)这个函数,是先计算x+y,然后调用对数函
27、数LOG来计算x+y的对数。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,36,3) 自变量的表示法:一般地,当函数有几个自变量时,它们必须用逗号分隔开。不过,以下三种写法均是合法的:functionname(OF variable1-variablen)functionname(OF variable variable .)functionname(variable, variable, .)例如: sum(of x1-x5)sum(of x1 x2 x3 x4 x5)sum(x1,x2,x3,x4,x5)是等价的。,2019/2/13,SAS统计分析软件-显示管理系统、
28、编程基础,37,2. 函数的结果作为函数结果的目标变量(因变量),其取值通常取决于自变量,当自变量是字符变量时,因变量取字符为值;当自变量为数值变量时,因变量取数值为值。 对大多数函数而言,数值目标变量的长度是8个字节,字符目标变量的长度为200个字节。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,38,三. 函数的分类 SAS函数主要分为以下四类: 数学函数abs():求绝对值mod(var1,var2):求var1除以var2后的余数sqrt():求平方根值log():计算以e为底的对数值log10():计算以10为底的对数值,2019/2/13,SAS统计分析软件-显
29、示管理系统、编程基础,39,样本统计函数max():求最大值 min():求最小值mean():求均数 std():求标准差sum():求和 随机函数normal():产生一个正态分布的伪随机数rannor():产生一个标准正态分布的随机数 日期时间函数year():从变量中抽取“年份”值month():从变量中抽取“月份”值day():返回变量的天数值,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,40,用循环语句输入数据,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,41,data a; label i=姓名 j=学期 x=常识 y=算术 z=制图; d
30、o i=1 to 6;do j=1 to 2;input x y z ; output;end; end; cards; 14 13 28 15 14 20 10 14 15 15 13 18 19 14 22 20 10 28 9 10 14 10 12 10 9 8 25 11 10 24 9 9 12 13 11 15 ; title 学生成绩; proc print data=a label; run;,练习1.为表1的数据建立一个永久数据集score,存放于D盘的SAS下。 2.计算每个学生的总成绩total. 3.调用print过程查看数据集score。 4.调用窗口查看数据集score的:标题、变量及它们属性的信息、数据库的名称。,2019/2/13,SAS统计分析软件-显示管理系统、编程基础,43,参考资料: 高惠璇:SAS系统 Base SAS软件使用手册SAS系统 SAS/ETS软件使用手册,