R2 | #30天专注橙长计划#~SAS~Day 17

第四章 排序、打印并描述你的数据

4.1使用SAS过程步

使用过程步就像填写一个如左图的表格,当然每个过程步都有独特的地方,本部分主要讨论各过程步相同的地方:

大部分过程步都有一个必须的语句,也有可选的语句,比如打印语句:proc print,这两个词是必须的,但可选的语句也有很多。

Proc语句所有的语句的必须部分为proc+过程名,比如print、contents等。后面接一些可选项。比如proc print data=banana;

data=banana选项告诉SAS打印哪个文件,如果不加,则SAS默认打印最近使用的数据。前面还可以家l ibname语句,建立一个对本地文件的链接(2.20),比如:

LIBNAME tropi cal 'c:\MySASLi b';

PROC CONTENTS DATA=tropi cal .banana;

或者直接引用(2.21):PROC CONTENTS DATA='c:\MySASLi b\banana';

BY语句BY语句只在过程proc sort中是必须的,它用来对观测值排序。其他过程BY告诉过程对变量进行分别分析,且是可选的。比如要对每个州进行分别分析,则为:BY State

另外,除了proc sort,其他过程都假设了数据已经进行了排序,所以如果数据还没有排序,那么在分析之前要用proc sort排序。

TITLEFOOTNOTE语句这是为输出加上标题和脚注。最基本的title语句为:title ‘标题’,双引号、单引号皆可,比如:

TITLE'Thi s i s a ti tl e';

如果标题中带有撇号,则需用双引号,或者将撇号换为双撇号:

TITLE”Here’s another ti tl e”;

TITLE’Here’’s another ti tl e’;

可以通过在ti le、footnote后面加上数字来添加多个标题和脚注,

FOOTNOTE3’Thi s i s the thi rd footnote’;

但是小数字的标题会代替大数字的标题,如ti tle2会代替title3。

标题的去处可以用ti tle+空值:TITLE;

Label语句它可以为输出的变量加上标签,一个标签最大256字节,下面的代码为

receivedate和shipdate创建了标签:

LABEL Recei veDate=’Date order was recei ved’

Shi pDate=’Date merchandi se was shi pped’;

注意的是,在数据步中使用label语句,则标签会保存在数据集中;在过程步中使用,标签只在这个过程中有效。

定制输出使用系统选项,可以为输出设置诸如居中、日期、单行长度、页长度等。使用Output Delivery System,还可以改变输出的风格,以不同的格式输出(HTML、RTF),甚至改变输出的任何细节。

输出数据集可以用ODS OUTPUT语句为输出结果创立一个数据集(5.3),一些过程中也可以用out=option。

4.2where语句在过程中构造子集

也可以用where构造子集,它方便快捷,因为他不创建新的数据集。且能够用在过程步中。

Where语句的基本形式为:

WHERE condi ti on;

只有满足条件的观测值才进行proc过程。一些使用最多的操作符及例子:

R2 | #30天专注橙长计划#~SAS~Day 17_第1张图片

输出结果为:

R2 | #30天专注橙长计划#~SAS~Day 17_第2张图片

4.3proc sort为数据排序

基本形式为:

PROC SORT;

BY vari abl e-1...vari abl e-n;

SAS首先会按照第一个变量排序,再对后面的排序。

Data=,out=用来指定输入和输出数据,如果缺失out=,则SAS会将排序后的数据集代替原

来的数据集。下面的代码告诉SAS对数据messy排序,并将排序后的数据存在neat中:

PROC SORT DATA=messy OUT=neat;

选项nodupkey告诉SAS排序时删除重复值,比如:

PROC SORT DATA=messy OUT=neat NODUPKEY;

SAS默认是升序,可以用选项DESCENDING来变成降序,将DESCENDING加在要降序的变量

前面:

BY State DESCENDING Ci ty;

例子下面的数据显示了一些鲸鱼和鲨鱼品种的平均长度:

R2 | #30天专注橙长计划#~SAS~Day 17_第3张图片
R2 | #30天专注橙长计划#~SAS~Day 17_第4张图片

你可能感兴趣的:(R2 | #30天专注橙长计划#~SAS~Day 17)