zoukankan      html  css  js  c++  java
  • SAS数据步与过程步,数据步语句

    SAS数据步与过程步,数据步语句
    http://www.biostatistic.net/thread-2045-1-1.html  ---转载---原文作者:biostar
    (出处: 生物统计家园) 

    数据步与数据步语句 

    1.数据步基本概念
        数据步是产生数据集的一组语句。一个数据步可以建立一个或多个数据集。在一份程序中可以有多个数据步。数据步程序还可以对已建立了的数据集进行修改和产生输出。

    2.程序变量与数据集变量
        SAS变量有程序变量与数据集变量。数据集的列也叫变量。

    3. 数据步的三种基本结构
      
    (1)数据源是DOS数据文件
        如果数据源是一个DOS的ASCll码数据文件存储于磁盘来建立数据集,其数据步程序具有如下格式:

        DATA语句;
        INFILE语句;
        INPUT语句;
       [其它数据步语句;]

       ;
        第一行“DATA语句;”告诉系统数据步开始,并给出将要产生的数据集名字及其有关信息。
        第二行“INFILE语句;”中给出数据源文件的文件名等,执行该语句后,指定的DOS文件被打开。
        第三行“INPUT语句;”给出将要从打开的文件中读取值的程序变量名及其信息。
        第四行“[其它数据步语句;]”是指此处还可以写其它允许使用SAS数据步语句,此行的内容是可选的。一般情况下,由前三行就可以构成一个数据步。
        最后一行是一个分号,它是本数据步结束的信息。

    (2)数据源在作业流中
    格式:
        DATA语句;
        INPUT语句;
       [其它数据步语句;]
        CARDS;


      “输入数据行”(每一行中的数据用一个或多个空格分隔,每一行的行末无标点。通常,一行数据是客观实体的一个观测的原始数据。有自由型、列型、格式化型)
         
      (3)数据源是已存在的数据集
     利用已经建立了的数据集中的数据来产生新的数据集。

    格式:
            FILENAME语句
           INFILE语句


      这个语句给出完整的DOS文件标识包括驱动器名、目录名、文件名和扩展名,
            一个文件标识可以唯一指定一个文件。



    4、数据步程序控制语句

       (1)GOTO 转向语句


            格式:

        GOT 标号;

            执行该语句后,程序控制转向程序中以GOTO后的而不是执行GOTO语句的下一行。
       (2)STOP 停止执行语句

            例:
            DATA a;
            INPUT X @@;
            IF x<0 THEN ST O P;
            CARDS;
             P R O C?PRINT;


       (3) if 条件语句

           格式:
        IF 表达式 THEN
           当表达式的值为真时执行其后的SAS语句。

       (4)RUN;

      执行前面的语句。

       (5)多向选择语句
           格式:
            SELECT[(表达式 0)」;
            WHEN(表达式1)语句1;
            WHEN(表达式2)语句2;
             ......
             
                    WHEN(表达式 n)语句n
            ......
            
            

       (6) DELETE语句
            格式:

        DELETE;
           语句的功能是当执行了DELETE语句后,该语句之后的语句将不被执行并且当前观察不送入数据集,而返回数据步的开始(即DATA语句的下一行),开始执行新的一遍数据步。
            DELETE语句与条件语句配合,可以实现用数据源的部分数据来建立数据集。
       (7) 循环语句
            SAS的循环语句有步长型、离散型、当型和直到型四种形式。

      此外还有其它的一些语句,将在以后的例题中逐一加以介绍。


    SAS过程步

    编号 过程名 功用 必要的语句
    means 计算基本统计量 proc means;
    var x;
    run;
    chart 制作次数分布表
    次数分布图
    proc chart;
    hbar x;
    run;
    univariate plot 正态分布检验 proc univariate plot;
    var x;
    run;
    PRINT 数 据 输 出 PROC PRINT ;
    RUN;
    SORT 数 据 排 序 PROC SORT;
    BY age;
    PROC PRINT;
    RUN;
    tabulate 制作表格 PROC PRINT;
    Proc tabulate format=8.0;
    Class repname month;
    var unitsold;
    table month,repname*unitsold*sum;
    RUN;
    anova; 单方面分类的方差分析 proc anova;
    classes a;
    model x = a;
     
    anova 双方面分类的方差分析 proc anova;
    classes block a;
    model x =block a;
    anova 三方面分类的方差分析 proc anova;
    classes A B T;
    model X1=A B T ;
     
    10
    可选择:
    LSQ
    duncan
    duncan
    多重比较
    可选择:
    LSQ测验
    邓肯Q测验
    图基Q测验
    proc anova;
    classes block a;
    model x =block a;
    means block a /LSQ alpha=0.05;
    means block a /LSQ alpha=0.01;
    11
    anova 2*2 复因子试验的统计分析方法 proc anova;
    classes block pinxi midu;
    model x=block pinxi midu pinxi*midu;
    12
    anova; 2*2*2 复因子试验的统计分析方法 proc anova;
    classes block k p n x;
    model x=block k p n k*p k*n p*n k*p*n ;
     
    13
    glm 协方差分析 proc glm;
    class t ;
    model y=t x;
    14
    anova 多元方差分析 proc anova;
    class block tre ;
    model x1 x2 x3 =block tre;
    manova h=block tre /summary;
    run;
    15
    anova 正交设计的分差分析 proc anova;
    classes block a b c d ;
    model x = block a b c d ;
    means block a b c d /lsd duncan tukey;
    run;
    16
    nested 嵌套设计的方差分析 proc nested;
    classes plant leaf;
    var calcium;
    run;
    17
    glm 带有交叉项的双向不均衡设计的方差分析 proc glm;
    class drug disease;
    model y=drug disease drug*disease /ss1 ss2 ss3 ss4;
    run;
    18
    corr 简 单 相 关 系 数 proc corr;
    var y;with x1;
    run;
    19
    corr 一个变量与多个变量的简单相关系数 proc corr;
    var y;with a b c d e f ;
    run;
    20
    corr 多个变量间的简单相关系数的计算 proc corr;
    run;
    21
    plot 相关点式图的绘制 plot y*x='+';
    rproc plot;
    un;
    22
    corr,partial 一 级 净 相 关 proc corr;
    var y;with a; partial f;
    run;
    23
    corr,partial 二 级 净 相 关 proc corr;
    var y;with f; partial a b ;
    run;
    24
    corr,partial 三 级 净 相 关 proc corr;
    var y;with f; partial a b d ;
    run;
    25
    cancorr 典 型 相 关 分 析 proc cancorr;
    var y1 y2 y3 ;with x1 x2 x3 ;
    run;
    26
    reg 直 线 回 归 proc reg;
    model y=x1;
    run;
    27
    reg 二 元 回 归 proc reg;
    model y=x1 x2;
    run;
    28
    reg
    可选择:
    forward
    backward
    stepwise
    多 元 回 归
    可选择:
    向 前 回 归
    向 后 回 归
    双 重 逐 步 回 归
    proc reg;
    model g=a b c d e f  /selection=forward;
    run;
    29
    cluster
    可选择:
    average
    wards
    density
    single
    twostage
     
    聚 类 分 析
    可选择:
    类 平 均 法
    重 心 法
    离 差 平 均 和 法
    密 度 估 计 法
    最 短 距 离 法
    两阶段密度估计法
    proc cluster method=average outtree=cate;
    var a b c d e f ; id bh;
    proc tree;
    run;
    30
    fastclus 动态聚类分析 proc fastclus data=iris maxc=2 maxiter=10 out=clus;
    var sepallen sepalwid petallen petalwid;
    proc freq;
    tables cluster*species;
    run;
           31 
    standard 数据标准化 proc standard mean=0 std=1 out=new;
    run;
    32
    princomp 主 成 分 分 析
    可选择:
    由 协 差 阵 计 算
    由 相 关 矩 阵 计 算
    proc princomp cov;
    run;

    proc princomp;
    run;
    33
    factor 
    可选择:
     
    因 子 分 析
    可选择:
    主 分 量 分 析
    主 因 子 分 析
    proc factor data=socecon simple corr;
    run;

    proc factor data=socecon priors=smc msa scree residual preplot
    rotate=promax reorder plot
    outstat=fact all;
    proc print;
    run;
    34
    ttest 成 组 法 T 检 验 proc ttest data=pinzhs;
    class pin;
    var yield;
    run;
    35
    univariate 配 对 法 T 检 验 proc univariate data=chromat;
    var methdiff;
    run;
    36
    npar1way 秩 和 检 验 proc npar1way data=gastric wilcoxon;
    class group;
    var lysolevl;
    run;
    37
    univariate 符 号 秩 检 验 proc print data=chromat;
    proc univariate data=chromat;
    var methdiff;
    run;
    38
    freq 卡平方测验
    可选择:
    2×2 联列表式
    2×j 联列表式
    r×c联列表式
    data;
    do a=1 to 2;
    do b=1 to 2;
    input x@@;
    output;
    end;
    end;
    cards;
    ......
    ;
    proc freq;
    weight x;
    tables a*b / chisq ;
    run;
    39
    reg 二 次 抛 物 线 proc reg data=uspop;
    var yearsq;
    model pop=year/r cli clm;
    plot r. *p. ;
    add yearsq;
    print;
    plot;
    plot pop*year='a' predicted.*year='p' u95. *year='u'
    l95. *year='l'/overlay;
    run;
    40
    NLIN
    可选择:
    dud
    MARQUARDT
    负 指 数 曲 线
    可选择:
    试 位 法
    麦 夸 特 法
    PROC NLIN BEST=10 METHOD=dud;
    PARMS B0=0 TO 2 BY .5 B1=.01 TO .09 BY .01;
    MODEL Y=B0*(1-EXP(-B1*X));
    DER.B0=1-EXP(-B1*X);
    DER.B1=B0*X*EXP(-B1*X);
    OUTPUT OUT=B P=YHAT R=YRESID;
    PROC PLOT DATA=B;
    PLOT Y*X='A' YHAT*X='P'/OVERLAY VPOS=25;
    PLOT YRESID*X/VREF=0 VPOS=25;
    RUN;
    41
    catmod 逻 辑 斯 蒂 回 归
    (标 准 响 应 函 数)
    proc catmod;
    weight count;
    direct heat soak;
    model y=heat soak / freq ml nogls covb corrb;
    quit;
    42
    sort
    RSREG
    二 次 响 应 面 分 析 proc sort;
    by time temp;
    proc rsreg;
    model mbt=time temp;
    ridge max;
    run;
    43
    lackfit 欠适测验 model mbt=time temp/lackfit;
    ridge max;
    run;
    44
    score 得 分 分 析 proc score data=fitness score=factout out=fscore;
    var age weight runtime runpulse rstpulse;
    run;
    45
    stepdisc 逐 步 判 别 分 析 proc stepdisc data=iris bsscp tsscp;
    class species ;
    var sepallen sepalwid petallen petalwid;
    run;
    46
    candisc 典 型 判 别 分 析 proc candisc data=iris out=outcan distance anova;
    class species ;
    var sepallen sepalwid petallen petalwid;
    run;
    proc plot;
    plot can2*can1=species;
    format species specchar.;
    title'Plot of Canonical Variables';
    run;
      47 RSREG 岭 嵴 分 析 PROC SORT;
    BY X1 X2 X3;
    PROC RSREG;
    MODEL Y=X1 X2 X3/LACKFIT;
    RUN;
    DATA B;
    *-------GET THE ACTUAL VALUES--------;
    SET A END=EOF;
    OUTPUT;
    *-------CREATE AN X1*X2 GRID FOR PLOTTING--------;
    IF EOF THEN DO;
    Y=.;
    X3=1.77;
    DO X1=-1.5 TO 1.5 BY .1;
    DO X2=-2 TO 2 BY .1;
    OUTPUT;
    END;
    END;
    PROC RSREG DATA=B OUT=C NOPRINT;
    MODEL Y=X1-X3/PREDICT;
    DATA B;
    SET C;
    IF X3=1.77;
    PROC PLOT ;
    PLOT X1*X2=Y/CONTOUR=6 HPOS=100 VPOS=36 HSPACE=10
    HAXIS=-2 TO 2 BY .5
    VAXIS=-1.5 TO 1.5 BY .5;
    RUN;

  • 相关阅读:
    第三章预习
    预习非数值数据的编码方式
    预习原码补码
    第三章——运算方法和运算部件预习
    预习非数值数据的编码方式
    预习原码补码(习题+预习)
    预习非数值数据的编码方式
    预习原码补码
    10.21
    10.7作业
  • 原文地址:https://www.cnblogs.com/520future/p/4770027.html
Copyright © 2011-2022 走看看