690 likes | 925 Views
SAS 软件应用基础. SAS 过程步. PROC BY CLASS VAR WEIGHT FREQ ID. FORMAT LABEL OUTPUT TITLE FOOTNOTE OPTIONS. 第六章 SAS 过程中常用语句. 6.1 PROC 语句. 语句格式: PROC <SAS 过程名 >[ 选择项 ] ; 功能 : 指定所需调用的过程以及该过程的若干选择项。 选择项 关键字 关键字 = 值 关键字 =SAS 数据集,如 DATA= 数据集. 例:
E N D
SAS软件应用基础 SAS过程步
PROC BY CLASS VAR WEIGHT FREQ ID FORMAT LABEL OUTPUT TITLE FOOTNOTE OPTIONS 第六章 SAS过程中常用语句
6.1 PROC 语句 • 语句格式: PROC <SAS过程名>[选择项]; • 功能: 指定所需调用的过程以及该过程的若干选择项。 • 选择项 • 关键字 • 关键字=值 • 关键字=SAS数据集,如 DATA=数据集
例: proc means data=a mean std stderr maxdec=3;
6.2 BY语句 • 语句格式: BY [DESCENDING] 变量…[NOTSORTED]; • 功能: 以指定的变量值来分组处理某数据集。 例:proc print ; by class descending tot; • 说明: BY语句总是首先与SORT过程一起使用,如数据集交叉连接和匹配合并时。
6.3 CLASS语句 • 语句格式: CLASS 变量表; • 功能: 用于定义分类变量 • 说明: 分类变量只有少数几个离散值或不连续值,字符型或数值型均可。作用类似于BY语句,但不需事先排序。
6.4 VAR语句 • 语句格式: VAR 变量表; • 功能: 用于定义分析变量。 • 说明: 省略该语句时,对所有变量做统计计算。
6.5 WEIGHT语句 • 语句格式: WEIGHT 变量; • 功能: 在过程中规定一个数值变量,并以它的值作为观测值的权重。
6.6 FREQ 语句 • 语句格式: FREQ 变量; • 功能: 规定一个数值变量,它的值表示数据集中某观测值出现的频数。 • 说明: 数据集中观测值总数等于FREQ变量的和。
例:DATA B; INPUT SEX $ AGE NUMBER; CARDS ; F 20 10 F 22 23 M 21 19 M 22 16 PROC MEANS ; VAR AGE ; PROC MEANS ; FREQ NUMBER ; VAR AGE ;
6.7 ID 语句 • 语句格式: ID 变量表; • 功能: 在输出数据集时,用该语句所规定的变量来识别观测值。 • 例:PROC PRINT DATA=A; PROC PRINT DATA=A; ID NAME;
6.8 FORMAT 语句 • 语句格式: FORMAT 变量 [格式] …; • 功能: 用于在过程中设置变量输出格式。 • 说明: • 使用宽度值、小数点和小数位数的格式 PROC PRINT DATA=A; FORMAT H 6.2 W 5.2 ; • 格式名以小数点结束 FORMAT SEX SEXFMT.;
DATA EMPLO; INPUT NAME $ T DATE7.; CARDS; zhongli 15jan84 liuwei 03mar85 proc print; FORMAT T WORDDATE.; run;
6.9 LABEL 语句 • 语句格式: LABEL 变量; • 功能: 给变量赋以标记,以便把变量名的含义更明确地在输出中表示出来。 • 说明: • 当在一个过程步中使用LABEL语句时,仅在该过程步期间该标记与该变量相联系。 • 数据步中使用时,标记与变量的联系一直存在所建的数据集中。
6.10 OUTPUT语句 • 语句格式: OUTPUT OUT=数据集名 [统计关键字=变量名] • 功能: 将过程结果输出到一个新SAS数据集。 • 说明: • 统计关键字指明在新的数据集中想要的统计项,并给包含这些统计项的变量起名。 • 数据步中OUTPUT语句的功能是将当前的观测值写入正建立的数据集中。
6.11 TITLE语句 • 语句格式: • TITLE[n] [‘标题内容’]; • 功能: 规定打印到SAS输出文件上的标题。 • 说明: • n:规定标题所在行,1~10,缺省值为1。 • 标题内容长度不超过当前规定的行长。 • 缺省的标题是“The SAS System”。 • 规定的标题在以后的输出中都有效,直至取消这一标题或为该行定义其它的标题为止。
取消所有现存标题: 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 ;
6.12 FOOTNOTE语句 • 语句格式: FOOTNOTE[n][‘脚注内容’]; • 功能:在输出页的底部打印一些脚注信息 • 说明: • n:规定脚注所在相对行,1~10,缺省值为1。带有最高行号的脚注出现在最底部。 • 脚注内容长度不超过当前规定的行长。 • 规定的脚注内容在以后的输出中都有效,直至用语句:FOOTNOTE;取消已给出的脚注。
例: PROC PRINT DATA= A; TITLE1 'THIS IS '; TITLE2 'A DATASET'; FOOTNOTE 1 '------------'; FOOTNOTE 2 'END'; RUN;
SAS 服务过程不直接给出统计值,常被用于准备或整理统计资料。 PRINT FORMAT SORT DBF TRANSPOSE STANDARD 第七章 SAS服务过程
7.1 PRINT 过程 PRINT 过程语句 PROC PRINT [ DATA=数据集 ] [ NOOBS ][ LABEL ] ; VAR 变量表; ID 变量; LABEL 表达式; SUM 变量表; BY 变量; WHERE 表达式;
例1:有一关于两个不同地区在职人员与退休人员年平均收入与消费水平的调查, 要求:分在职与不在职打印出每一地区两种人员收入与消费的总和。 DATA A; INPUT NAME $15. D $ W $ EARN EXP @@; CARDS; LILING A 1 5500 4700 LIUHONG B 2 4600 4000 PROC SORT; BY D W; PROC PRINT; BY D W; SUM EARN EXP;
7.2 FORMAT过程 7.2.1 概述: • 功能: • 对字符或数值变量定义一个用户所需的输出格式。 • 用途: • DATA步中FORMAT、PUT语句;过程步中FORMAT语句中变量均可以使用该格式。 • FORMAT过程产生两种格式: • 值输出格式: 输出值转变成不同的值(数值字符;字符字符;连续数值离散字符) • 描述输出格式:指定打印数值的模式
DATA SCORE; LENGTH NAME $ 12; INPUT NAME SEX GROUP $ T1-T3 @@ ; S=SUM(OF T1-T3) ; CARDS; WANGDONG 1 1 90 70 60 XUEPING 2 2 85 95 88 ZHOUHUA 1 1 77 84 69 HEYAN 1 2 95 78 88 SUNHONG 2 3 89 97 87 ZHAOBIN 2 3 66 98 86 PROC FORMAT ; VALUE SEXFMT 1='MALE' 2='FEMALE'; PROC PRINT DATA=SCORE; FORMAT SEX SEXFMT. ; RUN ;
7.2.2 语句说明 利用FORMAT过程产生值输出格式需要如下语句: PROC FORMAT [选择项]; VALUE [$] 格式名 范围1=“被输出的值1” 范围2=“被输出的值2” …; 1. PROC FORMAT [选择项]; 可使用的选择项主要为: LIBRARY=库逻辑名 2.VALUE [$]格式名 范围1=“被输出的值1” 范围2=“被输出的值2” …;
VALUE语句定义一种值输出格式,可把某变量的值按所定义的格式输出。可把数值变成字符或把字符转变成另一字符。每一VALUE语句可定义一种格式,在一个FORMAT过程中,你可以使用多个VALUE语句定义多个格式。VALUE语句定义一种值输出格式,可把某变量的值按所定义的格式输出。可把数值变成字符或把字符转变成另一字符。每一VALUE语句可定义一种格式,在一个FORMAT过程中,你可以使用多个VALUE语句定义多个格式。 以下给出VALUE语句应用的几个实例: • VALUE ABC 1=‘A’ 2=‘B’ 3=‘C’ ; • VALUE AGEFMT LOW-12=‘CHILD’ 13-19=‘TEENS’ 20-HIGH=‘ADULT’ ; • VALUE $SEXFMT ‘1’=‘MALE’ ‘2’=‘FEMALE’ OTHER=MISCODED’ ;
VALUE $ GRADE 'A'='GOOD' 'B'-'D'='FAIR' ‘F'-‘H'='SEE INSTRUCTOR' OTHER='MISCODED'; VALUE LOW-10='-10' 10<-20='-20' 20<-HIGH='20+';
7.2.3 应用举例 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 1 24 4300 xueping 2 18 4500 …… PROC MEANS; CLASS SEX AGE; VAR V; RUN;
第八章 基础统计过程 MEANS:计算数据集中数值变量的描述统计量 SUMMARY:计算数据集中数值变量的描述统计量 UNIVARIATE:计算统计量,绘图 TABULATE:计算并打印输出报表 CORR:求变量间相关系数 FREQ:计算频数分布,作多维列联表 CHART:用条形图等表示频数等统计量 PLOT :描绘变量的散点图
8.1 MEANS 过程 功能: 对数据集中的数值变量计算并输出简单的描述性统计量,并可建立数据集。
8.1.1语句说明: MEANS 过程使用如下语句: PROC MEANS [选择项列表]; VAR 变量表; BY 变量表; CLASS 变量表; FREQ 变量; WEIGHT 变量; ID 变量表; OUTPUT [选择项];
PROC MEANS [选择项列表]; PROC MEANS语句中可使用的选择项包括: • DATA= SAS数据集 • NOPRINT • MAXDEC=n指定打印结果的小数位数(0~8),缺省为2 • VARDEF=除数指明用于方差计算的除数,缺省值是VARDEF=DF。
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。
OUTPUT 语句 • OUTPUT [选择项]; OUTPUT语句能将MEANS过程计算的统计值输出到一个新的SAS数据集里。 OUTPUT语句中的选择项包括: • OUT=SAS-dataset(SAS数据集) • output-statistic-list (输出统计量列表) 例:PROC MEANS; VAR X1 X2; OUTPUT OUT=STATS MEAN=MX1 MX2 STD=SX1;
FREQ 语句 • 语句格式: FREQ 变量; • 功能: 规定一个数值变量,它的值表示数据集中某观测值出现的频数。 • 说明: 数据集中观测值总数等于FREQ变量的和。
例:DATA B; INPUT SEX $ AGE NUMBER; CARDS ; F 20 10 F 22 23 M 21 19 M 22 16 PROC MEANS ; VAR AGE ; PROC MEANS ; FREQ NUMBER ; VAR AGE ;
MEANS过程例1: DATA SCORE; LENGTH NAME $ 12; INPUT NAME SEX GROUP $ T1-T3 @@; S=SUM( OF T1-T3); CARDS; SUNHONG 2 3 89 97 87 ZHAOBIN 2 3 66 98 86 WANGDONG 1 1 90 70 60 XUEPING 2 2 85 95 88 ZHOUHUA 1 1 77 84 69 HEYAN 1 2 95 78 88 HUANGSHAN 2 3 67 75 76
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; var t1 t2 t3; title 'statistics with by variable'; Run;
例2. 40名麻疹易感儿接受麻疹疫苗一个月,血凝抑制抗体滴度如下,求平均滴度。