SAS入门教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章SAS系统概况
SAS(Statistic Analysis System)系统是世界领先的信息系统,它由最初的用于统计分析经不断发展和完善而成为大型集成应用软件系统;具有完备的数据存取、管理、分析和显示功能。在数据处理和统计分析领域,SAS系统被誉为国际上的标准软件系统。
SAS系统是一个模块化的集成软件系统。SAS系统提供的二十多个模块(产品)可完成各方面的实际问题,功能非常齐全,用户根据需要可灵活的选择使用。
●Base SAS
Base SAS软件是SAS系统的核心。主要功能是数据管理和数据加工处理,并有报表生成和描述统计的功能。Base SAS软件可以单独使用,也可以同其他软件产品一起组成一个用户化的SAS系统。
●SAS/AF
这是一个应用开发工具。利用SAS/AF的屏幕设计能力及SCL语言的处理能力可快速开发各种功能强大的应用系统。SAS/AF采用先进的OOP(面向对象编程)的技术,是用户可方便快速的实现各类具有图形用户界面(GUI)的应用系统。
●SAS/EIS
该软件是SAS系统种采用OOP(面向对象编程)技术的又一个开发工具。该产品也称为行政信息系统或每个人的信息系统。利用该软件可以创建多维数据库(MDDB),并能生成多维报表和图形。
●SAS/INTRNET
●SAS/ACCESS
该软件是对目前许多流行数据库的接口组成的接口集,它提供的与外部数据库的接口是透明和动态的。
第二章Base SAS软件
第一节SAS编程基础
SAS语言的编程规则与其它过程语言基本相同。
SAS语句
一个SAS语句是有SAS关键词、SAS名字、特殊字符和运算符组成的字符串,并以分号(;)结尾。
注释语句的形式为:/*注释内容*/ 或*注释内容。
二、SAS程序
一系列SAS语句组成一个SAS程序。SAS程序中的语句可分为两类步骤:DA TA步和PROC步。这两类步骤是所有SAS程序的模块。通常用DATA步产生SAS数据集,而用PROC 步对SAS数据集内的数据进行分析处理并输出结果。
SAS程序是在Editor窗口采用全屏幕编辑方式输入。当程序输入完毕后,就可以提交给SAS系统执行,在菜单中选择Submit或按F3键都可以运行程序,也可以只提交一部分语句。LOG窗口显示程序执行过程中记录的信息,它包括执行的语句,生成的数据集中变量的个数及记录的个数,每一步花费的时间及出错信息等。SAS过程产生的输出显示在OUTPUT窗口。
SAS数据集
SAS数据集相当于其它数据库系统的表(Table);每一行称为一个观测,相当于其它数据库系统的一条记录;每一列称为一个变量。
SAS的变量只有两种类型:数值型和字符型;变量的长度缺省时为8个字节,用关键字LENGTH定义变量长度;可以对变量的输入、输出格式进行定义,用关键字INFORMA T、FORMAT来分别定义;还可以给变量加标签,标签是一个代替变量名的描述性标识,可以在一些确定的SAS过程中代替变量名被打印出来,用关键字LABEL定义。
SAS数据集在系统中以文件的形式存在,扩展名是.sas7bdat。
每次启动SAS系统后,系统自动开辟一个库名为WORK的临时存贮区,用来存贮DATA 步或其它过程生成的临时数据集。一旦退出SAS系统,这个临时存贮区就被删除,其中所有的临时数据文件也被删除。
为了创建永久的数据集,必须给这个数据集规定存贮的地方和名字两部分,第一部分称为库标记或逻辑库名(Libref),它总是使用LIBNAME语句把库标记和一个目录联系起来,用来指示数据集存贮的地方。例如:
libname develop ‘d:\projects\develop\data’
develop.t_itemsum表明数据集t_itemsum存贮在‘d:\projects\develop\data’目录下。tmp 或work.tmp表明数据集tmp存贮在临时存贮区中。
SAS表达式和SAS函数
SAS语言的表达式与其它过程语言略有不同。
SAS语言中数值型变量的缺失值是一个小数点(.),字符型变量的缺失值是空(′′)。在一个四则运算的表达式里面,如果有一个缺失值,那么整个运算的结果就是’.’;如果用户不想让缺失值参加算术运算,可使用SAS的样本统计函数,如SUM(),MEAN()等。如果除法运算的除数为0,那么运算的结果也是’.’。
表示时间的变量在数据集里经常被定义为数值型,0代表的是1960年1月1日,1代表的是1960年1月2日,-1代表的是1959年12月31日,以此类推。我们可以用FORMA T 定义时间的输出格式,如:yymmdd10.这种格式显示的时间形式如’2001-05-01’。时间常数可以表示成'01MAY2001'd的形式,如:if occdate=’ 01MAY2001’d。
算符’| |’连接两个字符值,连接算付不清里开头和结尾的空格,如:如果itemid=’622 ’,itemname=’ 逾期贷款’,那么itemid | | ‘.’| | itemname=’ 622 .逾期贷款’。如果要去掉空格,就要使用SAS函数TRIM和LEFT,trim(left(itemid)) | | ‘.’| | trim(left(itemname))=’ 622 .逾期贷款’。
下面是一些常用的函数:
字符函数:
TRIM(s):去掉s尾部空格;
LEFT(s):字符串s的表示式采用左对齐,即去掉s开头的空格;
SUBSTR(s,p,n):从字符串s中的第p个字符开始抽取n个字符的子串。
LENGTH(s):给出字符串s的长度;
INDEX(s,s1):搜寻字符串s1在字符串s中的位置;
INPUT(s,informat):
字符s的输入格式为informat ,如:INPUT(‘1960-01-01’,yymmdd10.)=0;
PUT(s,format):
将s 按format的格式输出,如:PUT(0,yymmdd10.)=’1960-01-01’,结果一定为字
符型;
SYMPUT(‘x1’,x2):把x2的值赋给宏变量x1
SYMGET(‘x’):取得宏变量x的值;
时间和日期函数:
DA TE( ):取当前日期;
DA TETIME( ):取当前日期和时间;
YEAR(date)、MONTH(date)、QTR(date)、DAY(date):
分别取date表示的年、季度、月份、日。
INTX(in,from,nu):
按给定的时间间隔in—年(year)、季度(qtr)、月份(month)、日(day),从日期