SAS编程教程 (8)
- 格式:pdf
- 大小:589.59 KB
- 文档页数:16
第一章 SAS编程操作预备知识一、SAS系统简介SAS是一个庞大的系统,它目前的版本可以在多种操作系统中运行。
当前在国内被广泛使用的最新版本是8.2版,功能很强大,我深有体会。
据说9.0版已在国外面世,已经有一些有关它的抢先报道在网络上广为流传,说它如何如何美妙,令人不禁充满期待。
SAS8.2的完整版本包含以下数十个模块。
BASE,GRAPH,ETS,FSP,AF,OR,IML,SHARE,QC,STAT,INSIGHT,ANALYST,ASSIST, CONNECT,CPE,LAB,EIS,WAREHOUSE,PC File Formats,GIS,SPECTRAVIEW,SHARE*NET, R/3,OnlineTutor: SAS Programming,MDDB Server,IT Service Vision Client, IntrNet Compute Services,Enterprise Reporter,MDDB Server common products,Enterprise Miner,AppDev Studio,Integration Technologies 等。
所谓模块,我的理解是将功能相近的程序、代码等集中起来组成相对独立的部分,就称之为模块,类似于办公软件系统office中包含的word、excel、access 等。
各模块具有相对独立的功能范围,我们常用的模块有base,graph,stat,insight,assist,analyst模块等,分别执行基本数据处理、绘图、统计分析、数据探索、可视化数据处理等功能。
其余模块我用得很少,知道得也很少,所以也就不多说了。
SAS系统的长处,体现于它的编程操作功能的无比强大。
SAS一直以来也是注重于其编程语言的发展,对于可视化方式的菜单操作投入较少,其较早的版本仅有很少的菜单操作功能,使用起来也是非常的别扭。
这很可能就是在windows 人机交互式操作系统占统治地位的今天,SAS较少被人问津的原因之一。
第一章:DATA 步阐述DA TA 步是SAS 的一个关键步,正确理解其执行过程将会学习起来更方便。
1)DATA 步是一个循环,数据是一行一行地执行(与SQL 过程不同,它是对整个数据集进行操作);2)DA TA 步在执行时,将数据放在PDV 中,在这里将数据整理成想要的格式3)有三种情况可将PDV 中的数据输出到数据集中,OUTPUT 语句,return 语句,data 步结尾(;或run;)Output 语句:此语句出现在data 步中间时,将PDV 中数据输出到SAS 数据后,继续执行直到data 步结尾。
Return 语句:将pdv 中数据输出到SAS 数据集后,返回到data 步开头,执行下一次循环。
data 步结尾(;或run;):缺省形式,也是必须语句,否则DATA 步不完整。
相当于一个放在data 步结尾处的return 语句。
注:当一个DATA 步中含有OUTPUT 语句时,当执行到语句output 时才输出PDV 中的数据,data 步结尾处的默认输出不起作用。
4)退出SAS 数据步:stop 语句和abort 语句;其作用是退出DATA 步,并丢掉PDV 中的数据。
data aa; input ss pay; if _error_ then delete ; pi=constant('PI');/*常数pi*/ format pi 15.13; e=CONSTANT('e');/*常数e*/ datalines ; 111 100 aaa 200 444 300 run ; proc print ;run ;结果相同(只读取了第一条观测),左边在LOG 窗口显示一个提示,右边则显示一个出错信息注:abort<return|abend>,退出SaS 系统(与正常退出相同,有相关提示)。
5)DA TA 步的短路: IF expression ;(子集IF 语句):若表达式是假,系统立即返回到DATA 步开头,继续执行下一条观测,且不处理当前观测。
SAS编程技术课后习题总结第⼀章1.缺省情况下,快捷键F1, F3, F4, F5, F6, F7, F8, F9和Ctrl+E的作⽤是什么?F1帮助,F3 end,F4 recall调回提交的代码,F5 激活编辑器窗⼝,F6激活⽇志窗⼝,F7键激活输出窗⼝,F8 提交,F9键查看所有功能键功能,Ctrl+E键清除窗⼝内容。
2.缺省情况下SAS系统的五个功能窗⼝及各⾃的作⽤是什么?怎样定义激活这些窗⼝的快捷键?1)资源管理器窗⼝。
作⽤:访问数据的中⼼位置。
2)结果窗⼝。
作⽤:对程序的输出结果进⾏浏览和管理。
3)增强型编辑器窗⼝。
作⽤:⽐普通编辑窗⼝增加了⼀些功能,如定义缩写,显⽰⾏号,对程序段实现展开和收缩等。
4)⽇志窗⼝。
作⽤:查看程序运⾏信息。
5)输出窗⼝。
查看SAS程序的输出结果。
3.怎样增加和删除SAS⼯具?使⽤菜单栏中的⼯具=>定制=>“定制”标签实现⼯具的增加和删除。
4.SAS⽇志窗⼝的信息构成。
提交的程序语句;系统消息和错误;程序运⾏速度和时间。
5.在显⽰管理系统下,切换窗⼝和完成各种特定的功能等,有四种发布命令的⽅式:即,在命令框直接键⼊命令;使⽤下拉菜单;使⽤⼯具栏;按功能键。
试举例说明这些⽤法。
如提交运⾏的命令。
程序写完后,按F3键或F8键提交程序,或单击⼯具条中的提交按纽,或在命令框中输⼊submit命令,或使⽤菜单栏中的运⾏下的提交,这样所提交的程序就会被运⾏。
6.⽤菜单⽅式新建⼀个SAS逻辑库。
在菜单栏选择⼯具—》新建逻辑库出现如图所⽰界⾯。
在名称中输⼊新的逻辑库名称。
在引擎中根据数据来源选择不同的引擎,如果只是想建⽴本机地址上的⼀个普通的SAS数据集数据库,可以选择默认。
然后选中“启动时启⽤”复选框,在逻辑库信息中,单击路径后的“浏览”按钮,选择窗⼝可以不填,单击确定产⽣⼀个新的逻辑库。
7.说明下⾯SAS命令的⽤途并举例:keys,dlglib,libname,dir,var,options,submit,recall.Keys激活功能键的设定窗⼝。
第八讲: SAS 交互式矩阵语言—IML 编程(PROC IML)§8.1 引言SAS/IML 是SAS 的一个过程,IML (Interactive Matrix Language )是交互式矩阵语言的简称。
IML 中的基本处理单位是矩阵,所有运算和操作都是针对矩阵的。
数值被看成1×1的矩阵。
SAS/IML 中的矩阵和DATA 步以及SAS 环境中的数据集可以双向流动:数据集可以读入到IML 中形成矩阵,IML 中的矩阵可以读出为SAS 数据集。
进入IML 环境的方法是执行语句PROC IML;§8.2 IML 语言要素I 、矩阵1、矩阵的定义:矩阵是一个二维数阵,分为行和列。
构成矩阵的数据称为元素,可以是数值也可以是字符。
N ×1矩阵称为行向量,1×M 矩阵称为列向量,1×1矩阵称为标量(scalar)。
矩阵的名字与SAS 文件的命名规则相同(以字母或下划线开头,以字母数字和下划线组成,长度不超过32个字符)。
2、矩阵的创建:矩阵可以通过元素列示定义,也可以赋值来创建。
(1)元素列示法:proc iml ;a=100;b={1 2,3 4,5 6}; 注:元素重复的方法:创建矩阵时,如果需要连续重复输入一个数值作为矩阵的元素,则可采用元素重复因子(repeating Factor )实现。
重复因子是重复次数加方括号,放在需要重复的元素之前。
例如 proc iml ;a=100;b={[2]1 2,3 [2]4,[2]5 6};print b;结果为1 1 23 4 45 5 6(2)赋值法:赋值法通过赋值语句对已有的矩阵进行与运算(包括函数运算)创建矩阵。
一般形式:矩阵名=表达式;proc iml ;b={[2]1 2,3 [2]4,[2]5 6};c=2#b;print c;结果为2 2 46 8 810 10 123、矩阵表达式:表达式是由矩阵、函数以及运算符连接的式子,运算结果为矩阵。
SAS讲义-第八课上一节课介绍了SAS的观测值操作的关键词,这节课要完成介绍SAS变量操作的关键词。
SAS变量操作的关键词有:sum、keep、drop、length、rename、label(这些已经说过),以及retain、format、array。
这节课我们介绍retain、format,最后的array放到第十课来说,因为第九课我们还得先介绍循环语句,为了array 作铺垫。
一、retain语句我们知道data步中的data语句和run语句其实构成了一个循环语句。
一般情况下,系统每读一遍data步所有语句,pdv都会清空所有变量值,并置为缺失,然后根据执行语句,如赋值语句等,再次对变量进行赋值。
但是如果data步中使用retain语句,则pdv就不会清空retain语句对应的变量,而是一直保留直到下次该变量再次被执行。
语法格式:retain 变量初始值Retain var1-var4 (1 2 3 4);例1使用一个sum函数和一个retain语句代替累加语句。
(比较第六课例4)data b (keep=name height s_h);set resdat.class ;s_h=sum(s_h, height);retain s_h 0;run;例2缺失值填充。
需求是:如果在两个非缺失值之间存在缺失值,用前面的非缺失值填充,直到遇到下一个非缺失值为止。
data a;input id x @@;cards;1 102 103 .4 .5 206 .;data b;set a;retain new_x;if x ne . then new_x=x;run;分析:1)首先,程序编译后PDV存在三个变量:id;x;new_x,其中new_x 是retain变量,显然id和x在当前pdv里面,在所有程序还未执行之前,其值为缺失值。
new_x也是一样,但是如果在retain new_x语句后面加上一个初始化的值,比如零,则在pdv中new_x就应该是零,因此retain变量和非retain变量在程序编译之前本质上初始值是不一样的。
第一章 引论第一节 SAS与统计分析SAS系统是美国SAS软件研究所的产品,是一个用于决策支持的大型集成信息系统。
SAS系统经过二十多年的发展,以其卓越的数据处理能力,为在线数据分析、数据仓库、数据挖掘和决策支持提供了全面的解决方案。
SAS系统的发展始终离不开它的强大的数据分析功能,而且随着SAS系统的发展,其分析功能也与它在信息技术上的发展相辅相成,发展得更加深入、广泛和强大。
SAS系统的分析功能是散布在几乎所有的模块之中,较为集中的具有统计分析功能的是SAS/STAT、SAS/QC、SAS/INSIGHT、SAS/ETS等一些模块。
SAS系统的分析功能也在不断的发展之中,它随时地把用户需要的和学术研究中得到的一些有效的实用分析方法加入到SAS的不同模块之中,例如多变量分析中的偏最小二乘法便是一例。
在SAS系统分析功能的使用上,除了提供编程调用外,SAS对一些常用的分析功能都提供了简便的菜单系统,使用户不用编程就可以享用SAS 的许多深入的分析功能。
对常用的一些统计分析方法而言,SAS/INSIGHT、分析员应用和直接编程都可以达到同样的目的。
一般来说,SAS/INSIGHT 最为直观,便于步步深入;分析员应用可提供自动形成的程序,而且在属性数据分析和功效函数计算方面较INSIGHT强;编程是功能最强的,尤其是一些特殊或深入的分析功能只能用编程实现,但相对来说,编程较难熟练掌握。
下面我们就结合SAS/INSIGHT和分析员应用来介绍常用的一些统计分析方法。
第二节 SAS/INSIGHTSAS/INSIGHT是一个交互式的数据探索和分析的工具,用这一软件可以:l 通过多窗口连动的图象和分析结果,对数据进行探索l 分析单变量分布l 用相关和主成分研究多变量间的关系l 用方差分析和回归分析说明、拟合变量间关系的模型一、 区间型变量 ( interval variable ) 和列名型变量( nominal variable ):在SAS数据集中,变量的两种类型为:l 字符型变量l 数值型变量;在SAS/INSIGHT中,为了区分变量在分析中的不同作用,变量又按其测量水平分为:l 区间型变量:区间型变量必须是数值型变量,可以对其观测值进行各种四则运算,计算各种统计量;l 列名型变量:列名型变量可以是数值型的,也可以是字符型的,在INSIGHT中常起分类作用。