Download presentation
Presentation is loading. Please wait.
1
SAS软件应用基础 SAS过程步
2
第六章 SAS过程中常用语句 PROC BY CLASS VAR WEIGHT FREQ ID FORMAT LABEL OUTPUT
TITLE FOOTNOTE OPTIONS
3
6.1 PROC 语句 语句格式: 功能: 选择项 PROC <SAS过程名>[选择项];
指定所需调用的过程以及该过程的若干选择项。 选择项 关键字 关键字=值 关键字=SAS数据集,如 DATA=数据集
4
例: proc means data=a mean std stderr maxdec=3;
5
6.2 BY语句 语句格式: 功能: 说明: BY [DESCENDING] 变量…[NOTSORTED];
以指定的变量值来分组处理某数据集。 例:proc print ; by class descending tot; 说明: BY语句总是首先与SORT过程一起使用,如数据集交叉连接和匹配合并时。
6
6.3 CLASS语句 语句格式: 功能: 说明: CLASS 变量表; 用于定义分类变量
分类变量只有少数几个离散值或不连续值,字符型或数值型均可。作用类似于BY语句,但不需事先排序。
7
6.4 VAR语句 语句格式: VAR 变量表; 功能: 用于定义分析变量。 说明: 省略该语句时,对所有变量做统计计算。
8
6.5 WEIGHT语句 语句格式: WEIGHT 变量; 功能: 在过程中规定一个数值变量,并以它的值作为观测值的权重。
9
6.6 FREQ 语句 语句格式: 功能: 说明: FREQ 变量; 规定一个数值变量,它的值表示数据集中某观测值出现的频数。
10
例: DATA B; INPUT SEX $ AGE NUMBER; CARDS ; F F M M PROC MEANS ; VAR AGE ; FREQ NUMBER ; VAR AGE ;
12
6.7 ID 语句 语句格式: 功能: 例:PROC PRINT DATA=A; PROC PRINT DATA=A; ID NAME;
在输出数据集时,用该语句所规定的变量来识别观测值。 例:PROC PRINT DATA=A; PROC PRINT DATA=A; ID NAME;
15
6.8 FORMAT 语句 语句格式: 功能: 说明: FORMAT 变量 [格式] …; 用于在过程中设置变量输出格式。
使用宽度值、小数点和小数位数的格式 PROC PRINT DATA=A; FORMAT H 6.2 W 5.2 ; 格式名以小数点结束 FORMAT SEX SEXFMT.;
17
DATA EMPLO; INPUT NAME $ T DATE7.; CARDS; zhongli 15jan84
liuwei 03mar85 proc print; FORMAT T WORDDATE.; run; 题:FORMAT-3
18
6.9 LABEL 语句 语句格式: 功能: 说明: LABEL 变量; 给变量赋以标记,以便把变量名的含义更明确地在输出中表示出来。
数据步中使用时,标记与变量的联系一直存在所建的数据集中。
19
6.10 OUTPUT语句 语句格式: 功能: 说明: OUTPUT OUT=数据集名 [统计关键字=变量名]
将过程结果输出到一个新SAS数据集。 说明: 统计关键字指明在新的数据集中想要的统计项,并给包含这些统计项的变量起名。 数据步中OUTPUT语句的功能是将当前的观测值写入正建立的数据集中。
20
6.11 TITLE语句 语句格式: 功能: 规定打印到SAS输出文件上的标题。 说明: TITLE[n] [‘标题内容’];
标题内容长度不超过当前规定的行长。 缺省的标题是“The SAS System”。 规定的标题在以后的输出中都有效,直至取消这一标题或为该行定义其它的标题为止。
21
例1:PROC PRINT ; 例2:PROC PRINT DATA = A; 取消所有现存标题: TITLE;
取消第n行和它后面行的标题:TITLEn; 给某个过程步的输出加上标题,语句放在前一步的RUN语句之后和下一个DATA、PROC或RUN语句之前的任何地方。 例1:PROC PRINT ; TITLE 'TITLE FOR FIRST PROC'; PROC MEANS; 例2:PROC PRINT DATA = A; RUN ; TITLE 'TITLE FOR SECOND PROC'; PROC MEANS ;
22
6.12 FOOTNOTE语句 语句格式: 功能:在输出页的底部打印一些脚注信息 说明: FOOTNOTE[n][‘脚注内容’];
脚注内容长度不超过当前规定的行长。 规定的脚注内容在以后的输出中都有效,直至用语句:FOOTNOTE;取消已给出的脚注。
23
例: PROC PRINT DATA= A; TITLE1 'THIS IS '; TITLE2 'A DATASET';
FOOTNOTE 1 ' '; FOOTNOTE 2 'END'; RUN; FOOTNOTE.SAS
25
第七章 SAS服务过程 SAS 服务过程不直接给出统计值,常被用于准备或整理统计资料。 PRINT FORMAT SORT DBF
TRANSPOSE STANDARD
26
7.1 PRINT 过程 PRINT 过程语句 PROC PRINT [ DATA=数据集 ] [ NOOBS ][ LABEL ] ;
VAR 变量表; ID 变量; LABEL 表达式; SUM 变量表; BY 变量; WHERE 表达式; PRINT 过程中不能用CLASS语句.
27
INPUT NAME $15. D $ W $ EARN EXP @@; CARDS; LILING A 1 5500 4700
例1:有一关于两个不同地区在职人员与退休人员年平均收入与消费水平的调查, 要求:分在职与不在职打印出每一地区两种人员收入与消费的总和。 DATA A; INPUT NAME $15. D $ W $ EARN EXP CARDS; LILING A LIUHONG B PROC SORT; BY D W; PROC PRINT; BY D W; SUM EARN EXP;
30
7.2 FORMAT过程 7.2.1 概述: 功能: 用途: FORMAT过程产生两种格式: 对字符或数值变量定义一个用户所需的输出格式。
概述: 功能: 对字符或数值变量定义一个用户所需的输出格式。 用途: DATA步中FORMAT、PUT语句;过程步中FORMAT语句中变量均可以使用该格式。 FORMAT过程产生两种格式: 值输出格式: 输出值转变成不同的值(数值字符;字符字符;连续数值离散字符) 描述输出格式:指定打印数值的模式
31
INPUT NAME SEX GROUP $ T1-T3 @@ ; S=SUM(OF T1-T3) ; CARDS;
DATA SCORE; LENGTH NAME $ 12; INPUT NAME SEX GROUP $ T1-T3 ; S=SUM(OF T1-T3) ; CARDS; WANGDONG XUEPING ZHOUHUA HEYAN SUNHONG ZHAOBIN PROC FORMAT ; VALUE SEXFMT 1='MALE' 2='FEMALE'; PROC PRINT DATA=SCORE; FORMAT SEX SEXFMT. ; RUN ; FORMAT-1.SAS
32
利用FORMAT过程产生值输出格式需要如下语句: PROC FORMAT [选择项]; VALUE [$] 格式名 范围1=“被输出的值1”
7.2.2 语句说明 利用FORMAT过程产生值输出格式需要如下语句: PROC FORMAT [选择项]; VALUE [$] 格式名 范围1=“被输出的值1” 范围2=“被输出的值2” …; 1. PROC FORMAT [选择项]; 可使用的选择项主要为: LIBRARY=库逻辑名 2.VALUE [$] 格式名 范围1=“被输出的值1” 前一例题,把FORMAT语句从PRINT步移动到数据步
33
VALUE ABC 1=‘A’ 2=‘B’ 3=‘C’ ; VALUE AGEFMT
VALUE语句定义一种值输出格式,可把某变量的值按所定义的格式输出。可把数值变成字符或把字符转变成另一字符。每一VALUE语句可定义一种格式,在一个FORMAT过程中,你可以使用多个VALUE语句定义多个格式。 以下给出VALUE语句应用的几个实例: VALUE ABC 1=‘A’ 2=‘B’ 3=‘C’ ; VALUE AGEFMT LOW-12=‘CHILD’ =‘TEENS’ 20-HIGH=‘ADULT’ ; VALUE $SEXFMT ‘1’=‘MALE’ ‘2’=‘FEMALE’ OTHER=MISCODED’ ;
34
VALUE $ GRADE 'A'='GOOD' 'B'-'D'='FAIR' ‘F'-‘H'='SEE INSTRUCTOR' OTHER='MISCODED'; VALUE LOW-10='-10' 10<-20='-20' 20<-HIGH='20+';
35
7.2.3 应用举例 PROC FORMAT; VALUE $ SEXFMT ‘1’=‘FEMALE’ ‘2’=‘MALE’;
应用举例 PROC FORMAT; VALUE $ SEXFMT ‘1’=‘FEMALE’ ‘2’=‘MALE’; VALUE AGEFMT LOW-20='-20' 20<-45='-45' 45<-HIGH='45+'; DATA A; INPUT NAME $ SEX $ AGE V FORMAT AGE AGEFMT. SEX $SEXFMT. ; CARDS; wangdong xueping …… PROC MEANS; CLASS SEX AGE; VAR V; RUN; FORMAT语句在DATA步,存在数据集中,以后任何过程步应用此数据集,均按格式应用,如仅在某一过程步中用FORMAT语句,格式仅在该过程有效。
37
第八章 基础统计过程 MEANS:计算数据集中数值变量的描述统计量 SUMMARY:计算数据集中数值变量的描述统计量
UNIVARIATE:计算统计量,绘图 TABULATE:计算并打印输出报表 CORR:求变量间相关系数 FREQ:计算频数分布,作多维列联表 CHART:用条形图等表示频数等统计量 PLOT :描绘变量的散点图
38
8.1 MEANS 过程 功能: 对数据集中的数值变量计算并输出简单的描述性统计量,并可建立数据集。
39
8.1.1语句说明: MEANS 过程使用如下语句: PROC MEANS [选择项列表]; VAR 变量表; BY 变量表;
CLASS 变量表; FREQ 变量; WEIGHT 变量; ID 变量表; OUTPUT [选择项];
40
PROC MEANS语句中可使用的选择项包括:
DATA= SAS数据集 NOPRINT MAXDEC=n 指定打印结果的小数位数(0~8),缺省为2 VARDEF=除数 指明用于方差计算的除数,缺省值是VARDEF=DF。
41
Statistic list 统计量列表: MEANS过程可以计算的统计量有21种,可用下列关键词表示:N、MAEN、MAX、MIN、STD、STDERR、SUM、VAR、USS、CSS、NMISS、RANGE、T、PRT、SUMWGT、CV、SKEWNESS、KURTOSIS、CLM、LCLM、UCLM。 缺省时为N、MIN、MAX、MEAN、STD。
42
OUT=SAS-dataset(SAS数据集) output-statistic-list (输出统计量列表) 例: PROC MEANS;
OUTPUT语句能将MEANS过程计算的统计值输出到一个新的SAS数据集里。 OUTPUT语句中的选择项包括: OUT=SAS-dataset(SAS数据集) output-statistic-list (输出统计量列表) 例: PROC MEANS; VAR X1 X2; OUTPUT OUT=STATS MEAN=MX1 MX2 STD=SX1;
43
FREQ 语句 语句格式: 功能: 说明: FREQ 变量; 规定一个数值变量,它的值表示数据集中某观测值出现的频数。
44
例: DATA B; INPUT SEX $ AGE NUMBER; CARDS ; F F M M PROC MEANS ; VAR AGE ; FREQ NUMBER ; VAR AGE ;
46
MEANS过程例1: DATA SCORE; LENGTH NAME $ 12;
INPUT NAME SEX GROUP $ T1-T3 S=SUM( OF T1-T3); CARDS; SUNHONG ZHAOBIN WANGDONG XUEPING ZHOUHUA HEYAN HUANGSHAN
47
proc means data=score maxdec=3 ;
var t1 t2 t3; class group; title 'statistics with class variable'; proc sort data=score;by group; proc means maxdec=3 ; by group; title 'statistics with by variable'; Run;
49
图 8-3 在MEANS过程中使用BY语句的输出格式
50
例2. 40名麻疹易感儿接受麻疹疫苗一个月,血凝抑制抗体滴度如下,求平均滴度。
例 名麻疹易感儿接受麻疹疫苗一个月,血凝抑制抗体滴度如下,求平均滴度。 抗体滴度 1:4 1:8 1:16 1:32 1:64 1:128 1:256 1:512 人 数
51
分析: 抗体滴度为几何级数,必须先化成对数再求均值。设Y=LOG10(X)
由于需把按对数值求得的平均值再转换成滴度,即要对MEANS产生的结果作进一步处理,因此必须要使用OUTPUT语句将MEANS过程计算的结果(即对数均数)输出到另一SAS数据集中,被随后的数据步调用。但结果不需显示,因此可选用NOPRINT选择项。 用变量F代表频数(即每一滴度下的人数)。 第二个数据步用于将均数还原成滴度。
52
DATA A; INPUT F X Y=LOG10(X); CARDS; PROC MEANS NOPRINT; VAR Y; FREQ F; OUTPUT OUT=B MEAN=MY; DATA C; FILE PRINT; SET B; MX=10**MY; PUT MX;
53
例3. 在某一年级中,测得20 名男学生的身高,数据存于文件FIT.DAT 中。试求出身高的平均值95%的置信区间。
分析: (1) 此资料属小样本资料,求可信区间的公式是: 。其中计算95%可信区间时的α值为0.05。
54
(2)平均值(MEAN)与标准误(STDERR)及观测值数目(N)可由MEANS过程计算,并应将计算结果输出到一个新数据集中。
(3) 在第二个数据步中利用TINV函数计算出 t(1- α/2,df) 值: t(1- α/2,df) =TINV(1-α/2,df);利用(N)计算自由度(df);再利用公式求出可信区间。
55
PROC MEANS MEAN STDERR N NOPRINT;
DATA STUDENT; INFILE ‘A:FIT.DAT'; INPUT H; PROC MEANS MEAN STDERR N NOPRINT; OUTPUT OUT=B MEAN=MH STDERR=SH N=NUM; DATA CAL; SET B; T=TINV( 0.975,NUM-1); IN=T*SH; LL=MH-IN; UL=MH+IN; PUT LL UL; RUN; MEANS过程中无VAR语句 ==TINV(1-α/2,df)
56
8.2 FREQ 过程 8.2.1 概述 FREQ过程生成一维至n维的频数表和交叉表,并能将结果输出至数据集中。
概述 FREQ过程生成一维至n维的频数表和交叉表,并能将结果输出至数据集中。 例: SCORE为含学生成绩的数据集,用VFMT.格式把学生的平均成绩分成A、B、C三等,由FREQ过程产生每一分数段的学生人数和占总数的百分数等信息。
57
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;
58
8.2.2 语句说明 PROC FREQ 过程使用如下语句: PROC FREQ [选择项列表]; TABLES 请求式…[/选择项]; WEIGHT 变量; BY 变量; OUTPUT [选择项];
59
PROC FREQ [选择项列表]; DATA=SAS数据集; ORDER=FREQ|DATA|INTERNAL| FORMATTED
FORMCHAR(1,2,7)=字符串 规定用来构造列联表单元的轮廓线和分割线的字符。(1)垂直线(2)水平线(3)水平线与垂直交叉线。 缺省, FORMCHAR(1,2,7)=‘|-+’ PAGE 每页输出一张表
60
TABELS 请求式 </选择项>
(1)请求式 (request-list): 请求式由一个或多个由“*”号联连起来的变量组成。一维表由一个变量名产生;二维表由“*”隔开两个变量,任何数量的变量能被“*”连起来得到多维的表格。 ●一维频数表:只需在TABLES语句中简单地命名这一变量。 例: TABELS X; ●二维频数表:在TABELS语句中用星号“*”连接两个变量。第一个变量的值形成表的行而第二个变量的值形成表的列。 例: TABLES A * B;
61
●n维列联表:在TABELS语句中用“*”联接给定的三个或n个变量名。最后一个变量的值形成表的列,倒数第二个变量的值形成表的行,其它变量的每一级水平(或水平组合)形成了一层,且每层都形成了分立的列联表。 FREQ过程可有多个TABLES语句,每个TABLES语句也可以有多个请求式。
62
(2)选择项 在TABLES 语句的斜杠(/)后面可使用的选择项有许多种,现将常用的几种选择项介绍如下: 1) 一般选择项: ① MISSING:象分析非缺项值那样分析缺项值,且在百分数计算和其他统计计算时包括缺项值。 ② LIST:不是用列联表而是用列表格式打印二维或多维表格。但当需要统计检验和联合测量时,不能使用LIST选择项。
63
2) 请求统计分析的选择项 ① CHISQ: 请求卡方(χ2 )检验和基于卡方的有关测量。检验包括Pearson卡方、似然比卡方和曼特尔-享塞尔(Mantel-Haenszel)卡方。测量值包括斐( phi)系数,列联系数和克莱姆系数V(Cramer‘v )。对于 2*2 表也包括费雪尔(Fisher)精确检验。 ② EXACT:要求对大于2*2的表进行Fisher精确检验。
64
3) 请求增加表格信息及选择项 ① EXPECTED:请求打印在独立(或齐性)假设下的期望格频数。 ② DEVIATION:请求打印出各格的格频数和期望值的偏差。 ③ CELLCHI2:请求打印出每一格对总χ2 (卡方)统计的贡献。 ……
65
4) 禁止打印选择项 ① NOFREQ: 禁止打印列联表中的格频数。 ② NOPERCENT:禁止打印列联表中的百分数。 ……
66
8.2.4 举例 DATA A; INPUT A B CARDS; PROC FREQ ; TABLES A*B; TITLE '2-WAY CONTINGENCY TABLE'; PROC FREQ ORDER=DATA; TABLES A*B /LIST; TITLE '2-WAY FREQUENCY TABLE, ORDER=DATA';
Similar presentations