第一章 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程序中的语句可分为两类步骤:DATA步和PROC步。这两类步骤是所有SAS程序的模块。通常用DATA步产生SAS数据集,而用PROC步对SAS数据集内的数据进行分析处理并输出结果。
SAS程序是在Editor窗口采用全屏幕编辑方式输入。当程序输入完毕后,就可以提交给SAS系统执行,在菜单中选择Submit或按F3键都可以运行程序,也可以只提交一部分语句。LOG窗口显示程序执行过程中记录的信息,它包括执行的语句,生成的数据集中变量的个数及记录的个数,每一步花费的时间及出错信息等。SAS过程产生的输出显示在OUTPUT窗口。
SAS数据集
SAS数据集相当于其它数据库系统的表(Table);每一行称为一个观测,相当于其它数
据库系统的一条记录;每一列称为一个变量。
SAS的变量只有两种类型:数值型和字符型;变量的长度缺省时为8个字节,用关键字LENGTH定义变量长度;可以对变量的输入、输出格式进行定义,用关键字INFORMAT、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 或p表明数据集tmp存贮在临时存贮区中。
SAS表达式和SAS函数
SAS语言的表达式与其它过程语言略有不同。
SAS语言中数值型变量的缺失值是一个小数点(.),字符型变量的缺失值是空(′′)。
在一个四则运算的表达式里面,如果有一个缺失值,那么整个运算的结果就是’.’;如果用户不想让缺失值参加算术运算,可使用SAS的样本统计函数,如SUM(),MEAN()等。如果除法运算的除数为0,那么运算的结果也是’.’。
表示时间的变量在数据集里经常被定义为数值型,0代表的是1960年1月1日,1代表
的是1960年1月2日,-1代表的是1959年12月31日,以此类推。我们可以用FORMAT定义时间的输出格式,如: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的值;
时间和日期函数:
DATE( ):取当前日期;
DATETIME( ):取当前日期和时间;
YEAR(date)、MONTH(date)、QTR(date)、DAY(date):
分别取date表示的年、季度、月份、日。
INTX(in,from,nu):
按给定的时间间隔in—年(year)、季度(qtr)、月份(month)、日(day),从日期from,推算出nu个时间间隔后的日期的第一天。
如:PUT(INTNX(‘qtr’,INPUT(’1960-02-01’,yymmdd10.),2),yymmdd10.)=’1960-07-01’
第二节 DATA步(数据步)
DATA步是用DATA语句开始的一组SAS语句,用来创建SAS数据集。 本小节将介绍一些在D
ATA步中常用的SAS语句。
创建SAS数据集及输出文件或报表
1. 数据在作业流中
就是用SAS语句从作业流中输入数据来产生SAS数据集。一般的形式为:
DATA 语句; /*给出要产生的数据集的名字*/
INPUT 语句; /*对每个变量给出名字及类型*/
(用于DATA步的其它SAS语句)
CARDS; /*标志数据行开始*/
[数据行]
;
例:data tmp;
input sex $ x1-x3;
cards;
F 1 2 3
M 4 5 6 ;
2. 数据来自外部文件
从磁盘上读入数据文件产生SAS数据集。一般的形式为:
DATA 语句; /*给出要产生的数据集的名字*/
INFILE 语句; /*打开包含数据的外部文件*/
INPUT 语句; /*对每个变量给出名字及类型*/
(用于DATA步的其它SAS语句)
RUN;
例:data tmp;
infile ‘c:\f1.dat’;
input sex $ x1-x3;
z=(x1+x2+x3)/3;
run;
3. 数据来自其他SAS数据集
由已存在的数据集创建新的数据集。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论