登录
首页精彩阅读SAS读书笔记(6)—SAS过程初步
SAS读书笔记(6)—SAS过程初步
2015-10-22
收藏

SAS读书笔记(6)—SAS过程初步


SAS过程步的一般形式为:

PROC 过程名DATA=输入数据集选项:

过程语句/选项;

过程语句/选项;

RUN;

         其中PROC语句的选项是可选的,用来规定过程运行的一些设置,如果有多个选项用空格分开。DATA=输入数据集也是可选的,如果缺省的话使用最近生成的数据集。过程步一般以RUN语句结束,也可以省略RUN语句而在下一个过程步或数据步的开始处结束,另外还有一种所谓"交互式过程"可以在遇到RUN语句时不结束过程运行,只有遇到QUIT语句或者下一个过程步、数据步时才结束。过程步在PROC语句之后、结束之前可以有若干个过程语句。通常情况下,过程语句与数据步中的语句不同,数据步中的语句不能用在过程步中。过程步语句一般以某一个关键字开头,比如VAR、BY、TABLES、WEIGHT等,语句中有一些有关说明,如果有选择项的话要写在斜杠后。

    SAS过程步有些是对数据集作某种变换(比如SORT过程对数据集排序),不生成显示结果;多数过程步是对数据集作某些分析、报表,这时结果出现在OUTPUT窗口(高精度绘图过程的输出在GRAPHICS窗口)。对OUTPUT窗口的结果,我们可以用"File - Save As"菜单把它保存到一个文本文件进行进一步的修饰,插入到其它报告中,也可以用"File - Print"菜单直接打印。

2. SAS过程步常用语句

一、VAR语句

VAR语句在很多过程中用来指定分析变量。在VAR后面给出变量列表:

VAR 变量1 变量名2……变量名n;

变量名列表可以使用省略的形式,如X1-X3,

二、MODEL语句

MODEL语句在一些统计建模过程中用来指定模型的形式。其一般形式为

MODEL因变量=自变量表/选项;

三、BY语句和CLASS语句

BY语句在过程中一般用来指定一个或几个分组变量,根据这些分组变量值把观测分组,然后对每一组观测分别进行本过程指定的分析。在使用带有BY语句的过程步之前一般先用SORT过程对数据集排序。

在一些过程(如方差分析)中,使用CLASS语句指定一个或几个分类变量。而在另一些过程(如MEANS)中,CLASS语句作用与BY语句类似,可以指定分类变量,把观测按分类变量分类后分别进行分析。使用CLASS时不需要先按分类变量排序。

四、OUTPUT语句

在过程步中经常用OUTPUT语句指定输出结果存放的数据集。不同过程中把输出结果存入数据集的方法各有不同,OUTPUT语句是用得最多的一种,其一般格式为:

OUTPUT OUT=输出数据集名 关键字=变量名 关键字=变量名…;

其中用OUT=给出了要生成的结果数据集的名字,用"关键字=变量名"的方式指定了输出哪些结果(关键字的例子比如MEANS过程中的MEAN,VAR,STD等等),等号后面的变量名指定了这些结果在输出数据集中叫什么名字。例如

proc means data=sasuser.aa;

var math;

output out=result n=n mean=meanmath

var=varmath;

run;

proc print data=result;

run;

五、FREQ语句和WEIGHT语句

FREQ语句指定一个重复数变量,每个观测中此变量的值说明这个观测实际代表多少个完全相同的重复观测。FREQ变量只取整数值。如

WEIGHT语句指定一个权重变量,在某些允许加权的过程中代表权重,其值与观测对应的方差的倒数成比例。

六、ID语句

有些过程(如PRINT、UNIVARIATE)需要输出观测的代号,这一般使用观测的序号。但是,如果数据集中有一个变量可以用来区分观测(如人名、省市名),就可以用ID语句指定这个变量作为观测标识。比如:

id name;

七、LABEL语句

过程步中的LABEL语句为变量指定一个临时标签,很多过程可以使用这样的标签。LABEL语句的格式为

LABEL 变量名='标签'变量名='标签'…;

数据分析咨询请扫描二维码

客服在线
立即咨询