SAS
Download
1 / 69

SAS 软件应用基础 - PowerPoint PPT Presentation


  • 178 Views
  • Uploaded on

SAS 软件应用基础. SAS 过程步. PROC BY CLASS VAR WEIGHT FREQ ID. FORMAT LABEL OUTPUT TITLE FOOTNOTE OPTIONS. 第六章 SAS 过程中常用语句. 6.1 PROC 语句. 语句格式: PROC <SAS 过程名 >[ 选择项 ] ; 功能 : 指定所需调用的过程以及该过程的若干选择项。 选择项 关键字 关键字 = 值 关键字 =SAS 数据集,如 DATA= 数据集. 例:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' SAS 软件应用基础' - rania


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

SAS软件应用基础

SAS过程步


PROC

BY

CLASS

VAR

WEIGHT

FREQ

ID

FORMAT

LABEL

OUTPUT

TITLE

FOOTNOTE

OPTIONS

第六章 SAS过程中常用语句


6 1 proc
6.1 PROC 语句

  • 语句格式:

    PROC <SAS过程名>[选择项];

  • 功能:

    指定所需调用的过程以及该过程的若干选择项。

  • 选择项

    • 关键字

    • 关键字=值

    • 关键字=SAS数据集,如 DATA=数据集


  • 例:

    proc means data=a mean std stderr maxdec=3;


6 2 by
6.2 BY语句

  • 语句格式:

    BY [DESCENDING] 变量…[NOTSORTED];

  • 功能:

    以指定的变量值来分组处理某数据集。

    例:proc print ; by class descending tot;

  • 说明:

    BY语句总是首先与SORT过程一起使用,如数据集交叉连接和匹配合并时。


6 3 class
6.3 CLASS语句

  • 语句格式:

    CLASS 变量表;

  • 功能:

    用于定义分类变量

  • 说明:

    分类变量只有少数几个离散值或不连续值,字符型或数值型均可。作用类似于BY语句,但不需事先排序。


6 4 var
6.4 VAR语句

  • 语句格式:

    VAR 变量表;

  • 功能:

    用于定义分析变量。

  • 说明:

    省略该语句时,对所有变量做统计计算。


6 5 weight
6.5 WEIGHT语句

  • 语句格式:

    WEIGHT 变量;

  • 功能:

    在过程中规定一个数值变量,并以它的值作为观测值的权重。


6 6 freq
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
6.7 ID 语句

  • 语句格式:

    ID 变量表;

  • 功能:

    在输出数据集时,用该语句所规定的变量来识别观测值。

  • 例:PROC PRINT DATA=A;

    PROC PRINT DATA=A;

    ID NAME;


6 8 format
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
6.9 LABEL 语句

  • 语句格式:

    LABEL 变量;

  • 功能:

    给变量赋以标记,以便把变量名的含义更明确地在输出中表示出来。

  • 说明:

    • 当在一个过程步中使用LABEL语句时,仅在该过程步期间该标记与该变量相联系。

    • 数据步中使用时,标记与变量的联系一直存在所建的数据集中。


6 10 output
6.10 OUTPUT语句

  • 语句格式:

    OUTPUT OUT=数据集名 [统计关键字=变量名]

  • 功能:

    将过程结果输出到一个新SAS数据集。

  • 说明:

    • 统计关键字指明在新的数据集中想要的统计项,并给包含这些统计项的变量起名。

    • 数据步中OUTPUT语句的功能是将当前的观测值写入正建立的数据集中。


6 11 title
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
    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
    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 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 MEANS 过程

    功能:

    对数据集中的数值变量计算并输出简单的描述性统计量,并可建立数据集。


    8 1 1
    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;


    8-3 在MEANS过程中使用BY语句的输出格式


    2. 40名麻疹易感儿接受麻疹疫苗一个月,血凝抑制抗体滴度如下,求平均滴度。


    分析:

    • 抗体滴度为几何级数,必须先化成对数再求均值。设Y=LOG10(X)

    • 由于需把按对数值求得的平均值再转换成滴度,即要对MEANS产生的结果作进一步处理,因此必须要使用OUTPUT语句将MEANS过程计算的结果(即对数均数)输出到另一SAS数据集中,被随后的数据步调用。但结果不需显示,因此可选用NOPRINT选择项。

    • 用变量F代表频数(即每一滴度下的人数)。

    • 第二个数据步用于将均数还原成滴度。


    DATA A;

    INPUT F X @@;

    Y=LOG10(X);

    CARDS;

    1 4 5 8 6 16 2 32 7 64 10 128

    4 256 5 512

    PROC MEANS NOPRINT;

    VAR Y;

    FREQ F;

    OUTPUT OUT=B MEAN=MY;

    DATA C;

    FILE PRINT;

    SET B;

    MX=10**MY;

    PUT MX;


    3 20 fit dat 95
    3. 在某一年级中,测得20 名男学生的身高,数据存于文件FIT.DAT 中。试求出身高的平均值95%的置信区间。

    • 分析:

      (1) 此资料属小样本资料,求可信区间的公式是: 。其中计算95%可信区间时的α值为0.05。


    (2)平均值(MEAN)与标准误(STDERR)及观测值数目(N)可由MEANS过程计算,并应将计算结果输出到一个新数据集中。

    (3) 在第二个数据步中利用TINV函数计算出 t(1- α/2,df) 值: t(1- α/2,df) =TINV(1-α/2,df);利用(N)计算自由度(df);再利用公式求出可信区间。


    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;


    8 2 freq
    8.2 FREQ 过程

    8.2.1 概述

    FREQ过程生成一维至n维的频数表和交叉表,并能将结果输出至数据集中。

    例: SCORE为含学生成绩的数据集,用VFMT.格式把学生的平均成绩分成A、B、C三等,由FREQ过程产生每一分数段的学生人数和占总数的百分数等信息。


    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;


    8.2.2 语句说明

    PROC FREQ 过程使用如下语句:

    PROC FREQ [选择项列表];

    TABLES 请求式…[/选择项];

    WEIGHT 变量;

    BY 变量;

    OUTPUT [选择项];


    • PROC FREQ [选择项列表];

      • DATA=SAS数据集;

      • ORDER=FREQ|DATA|INTERNAL|

        FORMATTED

      • FORMCHAR(1,2,7)=字符串

        规定用来构造列联表单元的轮廓线和分割线的字符。(1)垂直线(2)水平线(3)水平线与垂直交叉线。

        缺省, FORMCHAR(1,2,7)=‘|-+’

      • PAGE 每页输出一张表


    Tabels
    TABELS 请求式 </选择项>

    (1)请求式 (request-list):请求式由一个或多个由“*”号联连起来的变量组成。一维表由一个变量名产生;二维表由“*”隔开两个变量,任何数量的变量能被“*”连起来得到多维的表格。

    ●一维频数表:只需在TABLES语句中简单地命名这一变量。 例: TABELS X;

    ●二维频数表:在TABELS语句中用星号“*”连接两个变量。第一个变量的值形成表的行而第二个变量的值形成表的列。

    例: TABLES A * B;


    ●n维列联表:在TABELS语句中用“*”联接给定的三个或n个变量名。最后一个变量的值形成表的列,倒数第二个变量的值形成表的行,其它变量的每一级水平(或水平组合)形成了一层,且每层都形成了分立的列联表。

    FREQ过程可有多个TABLES语句,每个TABLES语句也可以有多个请求式。


    2)选择项

    在TABLES 语句的斜杠(/)后面可使用的选择项有许多种,现将常用的几种选择项介绍如下:

    1) 一般选择项:

     ①MISSING:象分析非缺项值那样分析缺项值,且在百分数计算和其他统计计算时包括缺项值。

    • ② LIST:不是用列联表而是用列表格式打印二维或多维表格。但当需要统计检验和联合测量时,不能使用LIST选择项。


    2) 请求统计分析的选择项

     ① CHISQ: 请求卡方(χ2 )检验和基于卡方的有关测量。检验包括Pearson卡方、似然比卡方和曼特尔-享塞尔(Mantel-Haenszel)卡方。测量值包括斐( phi)系数,列联系数和克莱姆系数V(Cramer‘v )。对于 2*2 表也包括费雪尔(Fisher)精确检验。

     ② EXACT:要求对大于2*2的表进行Fisher精确检验。


    3) 请求增加表格信息及选择项

      ①EXPECTED:请求打印在独立(或齐性)假设下的期望格频数。

      ②DEVIATION:请求打印出各格的格频数和期望值的偏差。

      ③CELLCHI2:请求打印出每一格对总χ2 (卡方)统计的贡献。

    ……


    4) 禁止打印选择项

      ①NOFREQ: 禁止打印列联表中的格频数。

     ②NOPERCENT:禁止打印列联表中的百分数。

    ……


    8.2.4 举例

    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 ORDER=DATA;

    TABLES A*B /LIST;

    TITLE '2-WAY FREQUENCY TABLE, ORDER=DATA';


    ad