资源描述
第八章 描述性统计过程
以下过程都可用于计算基本统计量,如频数、均值等,但它们又各有特色:
UNIVARIATE 进行单变量统计,包括分位数及描绘分布图。
SUMMMARY 按观测值分组计算基本单变量统计值。分组是由CLASS语句中的变量所决定。统计结果可输出到SAS数据集中而不产生打印输出。
MEANS 计算均值及其他描述统计量。
TABULATE 打印基本统计的复杂表格。
CORR 求变量间相关系数。
进行基本统计的其他过程还包括:
CHART 画频数、均值、总和的条形图、立体直方图、饼图及星图。
FREQ 对分类变量计算频数分布,并作多维列联表。
SAS基本统计过程及其一些重要统计量
统计量
MEANS
UNIVARIATE
SUMMARY
TABULATE
CORR
非缺项值数(N)
√
√
√
√
缺项值数(NMISS)
√
√
√
√
√
权重和(SUMWEIGH_T)
√
√
√
√
均值(MEAN)
√
√
√
√
√
和(SUM)
√
√
√
√
√
最小值(MIN)
√
√
√
√
√
最大值(MAX)
√
√
√
√
√
全距(RANGE)
√
√
√
√
未修正平方和(USS)
√
√
√
√
修正平方和(CSS)
√
√
√
√
方差(VAR)
√
√
√
√
标准差(STD)
√
√
√
√
√
变异系数(CV)
√
√
√
√
偏度(SKEWNESS)
√
√
峰度(KURTOSIS)
√
√
T统计量值(t)
√
√
√
√
大于t值的概率(PRT)
√
√
√
√
中位数(MEDIAN)
√
四分位数(QUARTILE)
√
众数(MODE)
√
输出到SAS数据集
Yes
Yes
Yes
No
Yes
CLASS语句
Yes
No
Yes
Yes
No
BY语句
Yes
Yes
Yes
Yes
Yes
第一节 MEANS 过程
MEANS过程对数值变量给出简单的描述性统计。
例: 数据集SCORE含有学生三门课程的成绩(见SORT过程),用MEANS过程可得到: PROC MEANS DATA=SCORE;
MEANS过程由下列语句控制:
PROC MEANS [选择项];
VAR 变量表;
BY 变量表;
CLASS 变量表;
FREQ 变量;
WEIGHT 变量;
ID 变量表;
OUTPUT [选择项];
除PROC语句之外的其他语句均为可选语句。
8.1.1 语句说明
1.PROC MEANS语句
PROC MEANS 选择项;
常用下列选择项:
DATA=SAS数据集 指出需做MEANS分析的SAS数量集名。
NOPRINT 说明不打印任何描述性统计值。此选择项仅仅是为了建立一新的数据集时才使用。
MAXDEC=N 指出MEANS用于打印结果的最大小数位(0~8),缺省值为2。
VARDEF=除数 指明用于方差计算的除数,缺省值是VARDEF=DF。
VARDEF=DF 用自由度(N-1)作除数。
VARDEF=WEIGHT|WGT 用权重和作除数。
VARDEF=N 用观测值数(N)作除数。
VARDEF=WDF 用权重和减1作除数.
统计量列表它们可以是N、MAEN、MAX、MIN.STD、STDERR、SUM、VAR、USS、CSS、NMISS、RANGE、T、PRT、SUMWGT、CV、SKEWNESS、KURTOSIS等18个统计量的任意组合。隐含为N、MIN、MAX,MEAN、STD。
2.OUTPUT语句
OUTPUT 选择项;
OUTPUT语句将MEANS过程产生的统计值输出到一个新的SAS数据集。
选择项包括:
OUT=SAS数据集 指定输出数据集名。
统计关键字=名字 指明新数据集中想要的统计项。并给包含这些统计项的变量起名。这些名字将作为统计值在新数据集中使用。等号右边第一个变量名代表VAR语句中第一个变量的相应的统计量;第二个名字代表VAR语句中第二个变量的相应的统计量等等。例如:
PROC MEANS;
VAR X1 X2;
OUTPUT OUT=STATS MEAN=MA MB STD=SA SB;
MEAN=后的第一个变量MA。代表VAR语句中第一个变量X1的均值;第二个变量MB代表VAR语句中第二个变量X2的均值。STD=后的第一个变量SA代表VAR语句中第一个变量X1的标准差;X2的标准差不输出。
若省略了 “统计关键字=” 选择项,MEANS输出一个含有N、MIN、MAX、MEAN、STD的SAS数据集。
8.1.2 举例
例1:利用MEANS过程进行单变量统计。SCORE为含学生成绩的数据集。(注意CLASS及BY语句的区别)。(yp74.sas)
PROC MEANS DATA=SCORE MAXDEC=3;
VAR T1-T3;
CLASS GROUP;
TITLE 'Statistics With a Class Variable';
PROC SORT DATA=SCORE; BY GROUP;
PROC MEANS MAXDEC=3;
BY GROUP;
VAR T1-T3;
TITLE 'Statistics With By Variable';
RUN;
例2:40名麻疹易感儿接受麻疹疫苗一个月,血凝抑制抗体滴度如下表,求平均滴度。
抗体滴度 4 8 16 32 64 128 256 512
人数 1 5 6 2 7 10 4 5
有关背景知识及题目分析:
(1)抗体滴度为几何级数,必须先化成对数再求均值。设Y=LOG10(X)
(2)由于需把按对数值求得的平均值再转换成滴度,即要对MEANS产生的结果作进一步处理,要使用OUTPUT语句将MEANS结果输入到另一SAS数据集,但结果不需显示因此选用了NOPRINT。
(3)变量F代表频数
(4)第二个数据步用于将均数还原成滴度。(yp75.sas)
DATA A;
INPUT X F @@;
Y=LOG10(X);
CARDS;
4 1 8 5 16 6 32 2 64 7 128 10 256 4 512 5
;
PROC MEANS NOPRINT;
VAR Y;
FREQ F;
OUTPUT OUT=B MEAN=MY;
DATA C;
FILE PRINT;
SET B;
MX=10**MY;
PUT MX;
RUN;
例3:在某一年级中,测得20名男学生的身高。试求出身高的平均值95%的置信区间。
求置信区间时要先求出tdf,1-a/2,此值可用TINV函数得到。程序如下: (yp76.sas)
DATA STUDENT;
INPUT XUEHAO HEIGHT @@;
CARDS;
1001 175.8 1002 168.9 1003 178.2 1004 180.1
1005 169.8 1006 172.5 1007 175.3 1008 177.4
1009 168.8 1010 176.9 1011 181.1 1012 179.2
1013 178.2 1014 175.3 1015 177.6 1016 182.3
1017 173.5 1018 176.5 1019 175.2 1020 171.8
;
PROC MEANS DATA=STUDENT NOPRINT;
VAR HEIGHT;
OUTPUT OUT=B MEAN=MH STD=MS N=NUM;
DATA CAL;
SET B;
T=TINV(0.975,NUM-1);
IN=T*MS/SQRT(NUM);
L=MH-IN; U=MH+IN;
PUT L U;
RUN;
程序中,利用MEANS过程建立一个仅有MH(身高平均值)、MS(标准差)和NUM(人数)的数据集B。在DATA CAL中,用TINV函数求出t值。
第二节 FREQ 过程
8.2.1 简介
FREQ过程产生一维至n维的频数表和列联表。对于二维表,PROC FREQ计算统计量并给出检验。对n维表,PROC FREQ作分层分析,在层内作计算统计,频数也能输出到SAS数据集中。由于频数表对某个变量列出所有的值,可以查看这些值取值是否合理。所以它是检查数据错误的有效工具。
例:(yp77.sas)
PROC FORMAT;
VALUE VFMT LOW-<80='C'
80-<90='B'
90-HIGH='A';
DATA B;
SET SCORE;
V=MEAN(OF T1-T3);
PROC FREQ DATA=B;
FORMAT V VFMT.;
TABLES V;
RUN;
SCORE为含学生成绩的数据集,用VFMT.格式把学生的平均成绩分成A、B、C三等,由FREQ过程产生每一分数段的学生人数和占总数的百分数。
1.一维频数表
如想要一维频数表,只需在TABLES语句中简单地命名这一变量。例如:
PROC FREQ;
TABLES X;
产生变量X的每一水平的频数的一维表。
2.二维频数表
如要求两个变量的列联表,则在TABLES语句中用星号“*”连接两个变量。第一个变量的值形成表的行而第二个变量的值形成表的列。例如:
PROC FREQ;
TABLES A*B;
产生一个列联表,A的值在左边,B的值在顶端。
3.n维列联表
如你想得到三维(或n维)列联表,在TABLES语句中用“*”联接给定的三个或n个变量名。最后一个变量的值形成表的列,倒数第二个变量的值形成表的行,其他变量的每一级水平(或水平组合)形成了一层,且每层都形成了分立的列联表。
4.FREQ和其他SAS过程的比较
许多SAS过程也可能得到频数计数,PROC FREQ以具有计算卡方检验和测量二维及多维表的联系的能力而与其他过程相区别。其他过程如TABULATE能得到更普通的表格布局;SUMMARY能输出数据集;而CHART还可得到条形图和其他的图示。
8.2.2 语句说明
在FREQ过程中使用的语句是:
PROC FREQ [选择项];
TABLES 请求式…/选择项;
WEIGHT 变量;
BY 变量表;
PROC FREQ 语句为必须语句,其他语句为可选语句。
1.PROC FREQ 语句
PROC FREQ [选择项];
选择项有:
DATA=SAS数据集 规定此过程使用的数据集。如省略,则FREQ过程使用最新建立的数据集。
ORDER=FREQ|DATA|INTERNAL|FORMATTED 规定变量各级被报告出来的次序。
ORDER=FREQ 按递减的频数计数次序排列,即最大频数在前。
ORDER=DATA 按它们首先出现在输入数据集中的顺序放置。
ORDER=INTERNAL 按值的内部表示排列。
ORDER=FORMATTED 按外部的格式值排列。
缺省值是ORDER=INTERNAL。ORDER=选择项不适用于缺项值,缺项值总是排在前面。
2.TABLES语句
TABLES 请求式…/选择项;
请求式由一个或多个由“*”号连起来的变量组成。一维表由一个变量名产生;二维表由“*”相连的二个变量名产生,任何数量的变量能被联起来得到多维的表格。FREQ过程可有多个TABLES语句,每个TABLES语句也可以有多个请求式。
下面的TABLES语句中,左边二栏与右边一栏意义一致。
TABLES A*(B C): 等同于 TABLES A*B A*C;
TABLES (A B)*(C D); 等同于 TABLES A*C A*D B*c B*D;
TABLES (A B C)*D; 等同于 TABLES A*D B*D C*D
TABLES (A-C); 等同于 TABLES A B C;
TABLES (A-C)*D; 等同于 TABLES A*D B*D C*D;
而TABLES A-C*D;不合法。
如无TABLES语句,FREQ对数据集中所有变量求一维频数。如需要某变量的一维频数表并不规定选择项,FREQ对变量的每一个水平产生频数、累计频数、百分数和累计百分数。如需要一个二维表,且不规定任何选择项,FREQ产生交叉分组列表。此表包括各格的频数,总频数的百分数,行频数的百分数和列频数的百分数。每个变量的缺项被从表中排除了,但缺项的总频数打印在每一表的下面。
放在TABLES语句中“/”后面的选择项有:
1)一般选择项:
MISSING 象分析非缺项值那样分析缺项值,且在百分数计算和其他统计计算时包括缺项值。
LIST 不是用列联表而是用列表格式打印两维或多维表格。当需统计检验和联合测量时则不能使用LIST选择项。
OUT=SAS数据集 建立一个包括变量值和频数的输出数据集。如TABLES语句中有多个请求式,则输出数据集的内容为最后一个表请求式。
2)请求统计分析的选择项
CHISQ 请求卡方()检验和基于卡方的有关测量。检验包括泊松卡方、似然卡方和曼特尔-享塞尔(Mantel一Haenszel)卡方。测量包括斐(phi)系数、列联系数和克莱姆系数V(Cramer’v)。对于2*2表也包括费雪尔(Fisher)精确检验。
EXACT 请求对大于2*2的表进行Fisher精确检验。
此外还有CMH、ALL、MEASURES等选择项。
3)请求附加的表格信息的可选项
EXPECTED 请求打印在独立(或齐性)假设下的期望格频数。
DEVIATION 请求打印出各格的格频数和期望值的偏差。
CELLCHI2 请求打印出每一格对总(卡方)统计的贡献。
CUMCOL 请求在格中打印累计列百分数。
MISSPRINT 要求打印缺项值频数。
SPARSE 使过程打印出在请求表中几个变量水平的所有可能组合的信息。即使某些水平的组合不在数据中,此选择项影响在LIST选择项下的打印输出和输出的数据集。
4)禁止打印选择项
NOFREQ 禁止打印列联表中的格频数。
NOPERCENT 禁止打印列联表中的百分数。
NOROW 禁止打印列联表中各格的行百分数。
NOCOL 禁止打印列联表中各格的列百分数。
NOCUM 禁止打印一维频数表和用LIST格式的频数表的累计频数和累计百分数。
NOPRINT 禁止打印表格,但由CHISQ、MEASURES、CMH和ALL所指定的统计值例外。
8.2.3 打印输出
1.显示变量频数分布的一维表
打印下面的内容:
1)变量名和变量值
2)FREQUENCY 频数,给出每种值的频数
3)CUMULATIVE FREQUENCY 累计频数
4)PERCENT 百分数,给出代表该值占总数的百分数
5)CUMULATIVE PERCENT 累计百分数
2.二维表
二维表可以以列联表(缺省)和清单(指定LIST)的形式打印。列联表的每个表格包含第6~9项。
6)FREQUENCY 频数
7)PERCENT 代表该格的频数占总频数的百分数
8)ROW PCT 行百分数,代表该格的频数占该行的总频数计数的百分数
9)COL PCT 列百分数,代表该格的频数占该列的总频数计数的百分数
10)如指定了CHISQ选择项,则对每个二维表打印联合检验和测量
11)如指定了EXPECTED、DEVIATION、CELLCHl2等选择项,还可打印出它们各自代表的值。
8.2.4 举例
例1:下列例子说明了FREQ过程和TABLES语句中某些选择项的应用。(yp79.sas)
DATA A;
INPUT A B @@;
CARDS;
1 2 2 1 . 2 . . 1 1 2 1
;
PROC FREQ;
TABLES A*B;
TITLE '2 -- Way Contingency Table';
PROC FREQ;
TABLES A*B /LIST;
TITLE '2 -- Way Frequency Table, ORDER=DATA';
RUN;
例2:卡方检验
卡方检验为一种用途较广的显著性检验方法,常用于检验两个或两个以上样本率或构成比之间差别的显著性。
用FREQ过程进行卡方检验的步骤:
1)假设样本率或构成比之间无差别
2)在TABLES语句中指定CHISQ选择项
3)根据给出的结果,进行分析得出结论
例 在吸烟诱发癌症的实验中,分吸烟与不吸烟两组,问两组发癌率的差别有无显著性。(yp80.sas)
发癌数
未发癌数
吸烟组
52
19
不吸烟组
15
36
据上表数据建立数据集,对分组变量请求卡方检验。程序如下:
DATA ABC;
DO A=1 TO 2;
DO B=1 TO 2;
INPUT F @@;
OUTPUT;
END;
END;
CARDS;
52 19 15 36
;
PROC FREQ;
WEIGHT F;
TABLES A*B /CHISQ EXPECTED NOPERCENT NOCOL;
RUN;
第三节 TABULATE 过程
8.3.1 简介
TABULATlE过程以表格的形式输出满足用户要求的描述性统计。表格可达三维:页、行和列。TABULATE过程的特点是给用户一个直观的统计结果;表格的形式可由用户自由安排;
TABULATE过程能对数据进行诸如均值、频数、百分数、最大值、最小值、标准误差、方差等的统计分析。可见,TABULATlE过程既是一个统计分析过程,又是一个报表过程。
例:某单位的职工基本情况表如下表。表中描述了8位职工的姓名、性别、职称和年龄四项信息。如果对表中内容按职称进行分类的话,可把职工分为教授(P)、副教授(AP)和讲师(L)三类。如果要找出每类职称的人数、最大年龄、最小年龄、平均年龄这些统计量,程序如下。为了简化程序,未对人数(N)一栏作整数输出限制。
职工基本情况表
姓名(Name)
性别(Sex)
职称(Titl)
年龄(Age)
Zhouli
M
P
50
Yuke
W
AP
48
Liping
W
AP
47
Liuling
M
L
37
Wangfang
W
L
28
Leiming
M
AP
32
Fangjin
M
L
26
Liuming
W
AP
36
程序如下:(yp82.sas)
DATA D1;
INPUT NAME $ SEX $ TITL $ AGE @@;
CARDS;
Zhouli M P 50 Yuke W AP 48 Liping W AP 47
Liuling M L 37 Wangfang W L 28 Leiming M AP 32
Fangjin M L 26 Liuming W AP 36
;
PROC TABULATE FORMCHAR='|----|+|---';
CLASS TITL;
VAR AGE;
TABLE TITL ALL,AGE*(N MAX MIN MEAN);
RUN;
8.3.2 语句说明
在TABULATE过程中可使用下列语句:
PROC TABULATE [选择项];
CLASS 分类变量表;
VAR 分析变量表;
FREQ 变量;
WEIGHT 变量;
FORMAT 变量 格式…;
LABEL 变量=标记…;
KEYLABEL 关键字=‘文本’…;
TABLE 表达式 [,表达式][,表达式][/选择项];
在TABULATE过程中,PROC TABULATE语句说明过程的开始,并通过其后的选择项定义一些有关的选择内容。与之紧密联系的语句是TABLE语句,它指出输出表格的格式。TABLE语句及VAR或CLASS语句是必需的。变量表是用空格分开的多个变量。
1.PROC TABULATE 语句
PROC TABULATE [选择项];
PROC TABULATE语句可包含如下选择项:
DATA=SAS数据集 说明TABULATE过程所使用的数据集,如不说明这个选择项,TABULATE过程使用最新建立的SAS数据集。
MISSING 有MISSING选择项时,TABULATE过程把分类变量的缺项值作为有效水平。否则,TABULATE在分析中将不包含分类变量有缺项值的观测值。
FORMAT=格式名 规定表格输出的宽度。缺省值为12.2。
2.TABLE语句
TABLE 表达式[,表达式][,表达式][/选择项];
TABLE 语句是整个TABULATE过程的核心。其中包含了很多重要概念。
一个TABLE语句最多可以定义三个表格表达式。这三个表达式分别表达了输出表格的页、行和列的有关规定。当缺省一个表达式时,表示TABLE语句定义了一个二维表格。同理,当缺省两个表达式时,TABLE语句定义了一个一维表格。
一个TABLE语句中所使用的表格表达式涉及了三个问题;
Ø 在表达式中可用哪些元素作为操作数
Ø 在表达式中可用哪些操作符
Ø 表达式的运算遵守什么样的运算规则
1)在表达式中可使用的操作数
(1)分类变量(在CLASS语句中定义,在TABLE语句的表达式中引用)或ALL分类变量对一组观测值来说,一般只有几个离散的值,可按这些值对变量分类,如yp82.sas例中的变量Titl是分类变量。
ALL称为全类符,ALL用在表达式中是表示在输出表格时给出分类的小计或总计值。
(2)分析变量(在VAR语句中定义,在TABLE语句的表达式中引用) 分析变量是可对其进行统计分析的量,如在yp82.sas例中变量Age是分析变量,它的值可用作统计计算。
(3)统计量
这里的统计量指统计学中使用的统计量,如平均值、最小值、最大值等。它们用专用符号描述,变量不能与之同名。常用的统计量有:
NMISS 在分组中,包括分析变量缺项值的观测值数
N 在分组中,不包括分析变量缺项值的观测值数
MEAN 平均值
STD 标准差
MAX 最大值
MIN 最小值
RANGE 全距
SUM 和
USS 未校正平方和
CSS 对均值的校正平方和
STDERR 均数的标准误
CV 变异系数
T 检验假设总体均值为0 的student t值
PRT 绝对值大于T值的概率
VAR 方差
SUMWGT 变量值的加权和
PCTN 频数百分数
PCTSUM 和的百分数
(4)格式说明
F|FORMAT=格式
如:F=12.2说明输出格式占用12个字符宽度,其中小数位为2位。
2)在表达式中可使用的操作符
星号(*) 包含关系
空格 并列关系
圆括号 分组或说明运算次序
例yp82.sas中,分类变量Titl与ALL的关系是并列的,故表格输出时Titl的三个值各占一行,ALL的值占一行.这四行内容并列排列。分析变量.Age与统计量N、MIN、MAX和MEAN是包含关系,即Age包含N、MAX、MIN和MEAN,在表格输出时,Age(列的形式)包含 N、MIN、MAX、MEAN四项内容。
表达式的运算次序是:圆括号、包含操作、并列操作。
应当指出,所谓统计是指利用一个分类变量,对具有相同分类变量值的观测值中的一个分析变量进行统计。因此,不能把一个分析变量与另一个分析变量相包含,或者将一个统计量与另一个统计量相包含。
当规定一个分析变量而没有指出统计量时,则表示使用缺省统计量SUM;当没有规定分析变量和统计量时,则表示使用缺省统计量N。
3)TABLE语句中可使用的选择项
MISSTEXT='text' 提供多达20个字符的文本以便在包含缺项值的格子中输出信息。
RTSPACE=n
RTS=n 规定行标题的输出宽度。缺省时为LINESIZE值的1/4。
BOX=_PAGE_
BOX=变量名
BOX='串' 规定放在行标题上方的框中的文字。
3.CLASS语句
CLASS 分类变量表;
CLASS可用来说明在TABLE语句中引用的分类变量。任何在TABLE语句中出现的分类变量必须事先在CLASS语句中说明。变量的值可能是离散的或连续的,对于分类变量值为连续的情形,可通过PROC FORMAT转化为离散值。
4.VAR语句
VAR 分析变量表;
VAR一语句用来说明TABLE语句中引用的分析变量。任何用在TABLE语句中的分析变量必须事先在VAR语句中说明。分析变量必须是数值型的。
5.FREQ 和 WEIGHT语句
FREQ 变量;
WEIGHT 变量;
6.FORMAT 和 LABEL 语句
FORMAT 变量格式....;
LABEL 变量=标记...;
7.BY语句
BY 变量表;
8.KEYLABEL 语句
KEYLABEL keyword='text' ....;
其中,keyword是前面讨论的有效统计量名称之一,或者是全类变量ALL,而text是最多有40个字符的替换信息,text的值必须用引号括起来。
除非在TABLE语句中规定了另一个替换符串,否则在规定的关键字出现处一律用替换符串代之。
KEYLABEL语句对该过程的所有TABLE语句有效。如果对一个过程中的同一统计量规定了多个替换符串,则使用最后一次规定的替换符串。
8.3.3 举例
例:下面的程序给出3个班学生的学号(No,其中前3位为班级编号,后2位为班内编号)、三门课的成绩(SCOREl,SCORE2,SCORE3),求其平均成绩Average。平均成绩分成A、B、C(90分以上为A,60分以下为C,其他为B)三类,分析结果要给出各等成绩的人数、百分数、最大值和最小值。(yp86.sas)
data d2;
option ps=50;
input no $ socre1 score2 score3 @@;
classno=substr(no,1,3);
average=mean(of score1-score3);
if average>=90 then grade='A';
else if average<60 then grade='C';
else grade='B';
cards;
92101 90 91 89 92102 89 87 78 92103 61 59 67 92201 90 91 87
92205 87 61 56 92202 54 77 59 92203 96 90 91 92204 88 89 85
92206 71 49 56 92208 86 80 87 92212 76 88 90 92207 69 54 55
92210 90 88 88 92211 88 81 82 92209 78 67 65 92301 87 81 85
92302 81 78 74 92303 67 54 61 92304 88 76 75 92305 77 81 80
92306 71 70 65 92104 90 90 91 92307 90 91 93 92308 89 81 88
;
proc tabulate formchar(1 2 3 4 5 6 7 8 9 10 11)='|----|+|---' ;
title 'The Table of Student Scores';
keylabel N='Number' PCTN='Percent of Number';
class classno grade;
var average;
table classno,grade all,average*(N*F=6. PCTN*F=10.2 MAX MIN) / rts=15 box='Average Scores';
run;
第四节 PLOT 过程
8.4.1 简介
PLOT是一个绘制散点图的过程。它描述数据集中两个变量的相互关系。下面是一个绘制Y=sin(x)函数关系散点图的程序。程序中DO语句产生13个x和Y的离散点对。(yp87.sas)
data d3;
do x=0 to 360 by 30;
y=sin(x*3.14159/180);
output;
end;
proc plot;
plot y*x;
run;
8.4.2 语句说明
在PLOT 过程中可使用下列语句:
PROC PLOT [选择项];
BY 变量表;
PLOT 绘图表达式/选择项;
在PLOT 过程中,至少要给出一个PLOT语句,在每一个PLOT语句中可以有多个绘图表达式。
1.PROC PLOT 语句
PROC PLOT [选择项];
指示PLOT 过程的开始。选择项可以是如下内容之一:
DATA=SAS数据集 指示PLOT 过程要使用的数据集,缺省时,PLOT过程使用最新建立的数据集。
UNIFORM 与BY语句有关,要求BY组的坐标刻度相同,于是可直接比较BY变量不同水平的图表。
VTOH=值 指示PLOT过程输出时纵横坐标的比例。
VPERCENT=值 指示PLOT过程产生图表长度占一页长的纵向百分率。使用VPERCENT选择项可在一页上安排尽量多的图表。例如: VPERCENT=33,使PROC PLOT过程在每页上垂直输出三个图,且每个图占一页长的三分之一。VPERCENT=50 25 25,使PROC PLOT过程输出三个图在一页上,而且第一个图是第二个图或第三个图的两倍长; VPERCENT=33 0,产生的图仅占一页的三分之一,但这一页只输出这一个图;VPERCENT=300,产生一个三页长的图表。
HPERCENT=值 指示PLOT过程产生图表宽度占行长的百分率。使用方法完全类似VPERCENT选择项。
2.BY 语句
用法见第五章。
3.PLOT 语句
PLOT 绘图表达式[/选择项];
绘图表达式采用以下格式: Y*X
其中Y、X分别代表两个用以绘图的变量,Y表示垂直坐标,X表示水平坐标。PLOT过程把平面坐标上关于X和Y的点描述在图上。一般情况下,PLOT过程用字符‘A’描述座标点,若点(X,Y)具有2对相同的离散值,则用字符‘B’描述,有3对相同的离散值时,用字符‘C’描记等等。不过,还可以直接指出描记符号,例如:
PLOT A*B='*'; 请求绘制关于B、A点对的图,图上的每个点用‘*’描述;
PLOT Y*X=变量; 要求变量的值作为图上的标记。
请求绘制两个以上的图时的一些等效写法有;
PLOT(Y X)*(A B); 等效于PLOT Y*A Y*B X*A X*B;
PLOT Y*(A-C); 等效于PLOT Y*A Y*B Y*C;
PLOT 语句可使用如下选择项:
1)有关轴刻度的选择项
VAXIS=值表 指出垂直轴上刻度标记。
例如:P
展开阅读全文