统计211
标题:
SAS编程操作应该具备的一些知识
[打印本页]
作者:
275932488
时间:
2011-6-18 18:49
标题:
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较少被人问津的原因之一。
到了最新的几个版本,SAS也对可视化操作方法投入了一定的关注。从8.0版以后,出现了几个功能强大的可视化操作的模块,如insight模块和analyst模块等,其菜单操作的方便程度以及人机界面的亲和性绝不亚于SPSS等著名的可视化统计分析软件。
然而要想完全发挥SAS系统强大的功能,充分利用其提供的丰富资源,掌握SAS的编程操作是必要的,也只有这样才能体现出SAS在各个方面的杰出才能。
二、SAS系统基本操作及基本概念
哪位要是连软件的安装和打开都要我啰嗦的话,我劝您还是买一套洪恩的《开天辟地》好好热热身先。
SAS 8.2的界面中间是三个并排(或层叠)的窗口,那个叫做Program Editor的窗口(窗口标签为Editor)就是用来输入SAS语句的,编程操作的所有内容都是在该窗口内完成的,各位还是要跟它先多熟悉一下。
(一)数据集(dataset)和库
统计学的操作都是针对数据的,SAS中容纳数据的文件称为数据集,数据集又包含在不同的库(暂且理解为数据库吧)中。SAS中的库分为永久性和临时性两种。顾名思义,存在于永久库中的数据集是永久存在的(只要你不去删除它),临时库中的数据集则在你退出SAS后自动被删除。至于SAS中库的概念,最简单的理解就是一个目录,一个存放数据集的目录。
SAS编程操作应该具备的一些知识
Data语句所指定的数据集,一般都是以“库名.数据集名”的格式出现的,也可以单独的“数据集名”出现,此时的数据集系统默认为是临时库中的数据集,退出系统后将会被删除。
data语句有两个重要的功能,标志数据步的开始和命名将要创建的SAS数据集。
除data语句外,数据步一般情况下还包括infile语句、input语句以及datalines语句等。在不同的数据输入方式下对于它们的使用方式也不一样。
SAS程序有两种常见的数据输入方式,即从外部文件读入和直接输入两种方式。
(1)外部文件读入方式
数据若已经包含在某个外部文件(文本文件或数据文件)中,可用此方法输入数据到数据集文件中。
在以上介绍的data语句后,写入以下语句:
infile ‘外部文件的所在位置及名称’ 选项;
input 变量名1变量名2 …变量名n;
infile语句用于从外部文件读入数据,必须出现在input语句之前。它的功能是指定一个包含原始数据的外部文件。
input语句用于向系统表明如何读入每一条数据记录。它的主要功能有:读入由语句指定的数据列,为相应的数据域定义变量名,确定变量的读入模式。
例如:
libname a ‘e:\data\’;
data a.student;
infile ‘e:\data\student.txt’;
input name height weight;
以上程序将目录“e:\data\”下的文本文件“student.txt”中的数据输入数据集student中,该数据集存放于目录“e:\data\”下。
(2)直接输入方式
数据量较少或操作者意志力坚强的情况下采用此种输入方式,在data语句之后写入如下语句:
input变量名1变量名2 …变量名n;
datalines;(在以前的版本下为cards,新版本下两者可通用)
… … … …(数据行)
… … … …(数据行)
… … … …(数据行)
;
4.几个常用的重要过程
在进入一般统计学功能实现的内容之前,有关数据预处理和执行重要公共功能的过程大家有必要预先掌握,这里选出几个常用的和重要的过程进行讨论。
(1)对SAS文件进行操作的datasets过程
datasets过程是对数据文件进行管理操作的工具,利用它我们可以实现以下功能:
将SAS文件从一个库中拷入另一个库中;
对SAS文件进行重命名;
修复损坏的SAS文件;
删除SAS文件;
列出某一SAS库中所有的SAS文件;
列出一个SAS数据集的属性,如最后修改时间、数据是否压缩、数据是否索引等;
对SAS文件进行设置密码的操作;
向SAS数据集添加记录;
对SAS数据集的属性以及数据集内变量的属性进行修改;
创建或删除SAS数据集的索引;
创建并管理SAS数据集的核查文件;
创建或删除SAS数据集的完整性规则。
datasets过程的一般格式如下:
proc datasets <选项列表>;
age 当前文件名 相关文件名列表</选项列表>;
append base=数据集名 <data=数据集名 其它选项>;
audit 文件名<(操作密码)>;initiate;<其它代码;>
change 旧文件名1=新文件名1 <…旧文件名n=新文件名n> <选项列表>;
contents <data=数据集名> <其它选项>;
copy out=库标记 <其它选项>;
exclude 文件名 <其它选项>;(该语句只能在copy语句后出现,不能和select语句同时出现)
select 文件名 <其它选项>;(该语句只能在copy语句后出现,不能和exclude语句同时出现)
delete 文件名 <其它选项>;
exchange文件名1=交换文件名1 <…文件名n=交换文件名n> <选项列表>;
modify 文件名 <选项列表>;
<modify语句之从属语句>;
repair文件名 <选项列表>;
save文件名 <选项列表>;
run;
age语句用于批量地重命名文件,按照当前文件和相关文件的排列顺序,依次将后一个文件名重命名给前一个文件,结果是最后一个文件被删除,当前文件名被废弃。
对此语句我所了解的就这么多,而且还是通过试验得出的结论,但总感觉还是理解的不对,哪位若有高见还请不吝赐教。
append语句执行向数据集添加记录的功能,选项“base=数据集名”用以指定要添加记录的数据集,“data=数据集名”则指定所要添加的记录所在的数据集,此选项若省略则默认为当前数据集(最近一次操作的数据集)。
audit语句用于对文件的核查,生成核查文件并对其进行管理;change语句以新文件名替换旧文件名;contents语句用于显示指定数据集或当前数据集的各种属性;copy语句用于将当前库中相应的文件拷贝到指定的库中,选项“out=库标记”用来指定文件要拷贝到的目标库;delete语句用于删除指定的文件;exchange语句的功能是将等号前后两个文件的文件名进行互换;modify语句用于修改文件各方面的属性;repair语句用于对指定的文件(受到过某种损坏)进行修复,使其恢复到可以使用的状态;save语句的功能是将其指定的文件保留,当前库中的其他所有文件则被删除。
(2)对数据文件中记录进行排序的sort过程
sort过程的功能是对指定数据集中的记录按照指定的变量进行排序。由于诸多过程有对数据集记录进行排序的需要,比如过程步中存在by语句(用以将数据文件分割为若干部分)的情况下,就需要按照by语句后的变量对数据先行排序,所以sort过程非常有用,而且非常常用。
sort过程的一般格式如下:
proc sort 选项列表;
变量名1 <变量名2 … 变量名n>;
run;
proc sort语句后各选项含义及其用法见下表(表1.3)。
表1.3 proc sort语句后各选项含义及其用法
选项 含义及用法
data=数据集名 用以指定sort过程所要处理的数据集,若省略则默认为最近建立或处理的数据集
datecopy 此选项指定在不改变文件创建日期和修改日期的条件下对文件进行排序操作
out=数据集名 将排序后文件以指定的文件名存储,原文件不进行任何修改,若无此选项则将原文件覆盖
sortseq=排序依据 指定对字符型变量排序时依据的标准
reverse/equals/noequals 指定输出数据中的排序方式,三者分别表示将字符变量的次序翻转显示,在排序变量的各水平内部次序保持不变,在排序变量的各水平内部允许次序的改变
nodupkey/noduprecs 指定重复变量的消除方式,前者表示除去排序变量值重复的记录,后者表示除去所有变量值重复的记录
sortsize= 用以指定可用最大内存的大小,等号后为表示内存大小的数值及单位,比如10m
force 用以强制执行重复排序(对已建立索引的文件排序)过程
tagsort 指定在临时文件中仅存储排序变量和记录编号,以减少对磁盘空间的使用
by语句在所有过程中的用法都相同,即将数据集分割为若干小数据集分别进行处理。pageby语句用来控制换页时变量的显示方式,对于其后所指定的变量,相同的值不会显示在不同的页中,该变量某一值的记录在一页的剩余部分显示不下时,则从该值的第一条记录开始换行显示。sumby语句的作用和pageby语句相似,只不过是将换页的动作换为求和,对指定变量的每一值计算var变量的总计值。id语句的作用是用指定的变量值代替记录编号对每一条记录进行标识。sum语句用于指定报告中要进行求和操作的变量,var语句用于指定要在报告中显示的变量。
以上过程作用较为普遍,使用频率较高,有必要预先了解,以便于后面所讨论内容的顺利进行。
为节省篇幅,这里不进行实例演示。内容过于枯燥,可能的错误也难免,还请各位多多包涵。
SAS程序操作的大概情况就草草的这样介绍一下吧,说得太多的话我怕各位没有耐心看下去。更多的内容我想还是留在实际的例子中来介绍,这样大家可以好好的切身体会一下,然后就会印象深刻,实际运用起来也就得心应手了。
作者:
rmy
时间:
2011-6-22 17:18
Type Lags Rho Pr < Rho Tau Pr < Tau F Pr > F
Zero Mean 0 3.0463 0.9973 9.50 0.9999
1 4.0568 0.9994 1.80 0.9791
2 3.0966 0.9973 2.61 0.9964
3 2.8827 0.9961 2.27 0.9922
Single Mean 0 2.5558 0.9983 5.79 0.9999 49.06 0.0010
1 3.0679 0.9991 1.57 0.9990 1.90 0.6126
2 2.6118 0.9983 2.36 0.9999 3.72 0.1930
3 2.3818 0.9976 2.12 0.9998 3.00 0.3592
Trend 0 0.3541 0.9956 0.34 0.9977 22.34 0.0010
1 -0.7151 0.9874 -0.29 0.9860 2.36 0.7199
2 0.2224 0.9948 0.14 0.9957 4.07 0.4221
3 0.2004 0.9945 0.13 0.9955 3.41 0.5359
作者:
rmy
时间:
2011-6-22 17:19
老大 怎么看啊 不懂 在做adf检验时得出的
欢迎光临 统计211 (http://www.tj211.com/)
Powered by Discuz! X3.2