美文网首页
proc-tabulate-report

proc-tabulate-report

作者: 阿发贝塔伽马 | 来源:发表于2018-02-22 11:16 被阅读0次
    data parks;
        infile cards;
        input name $1-21 type $ Region $ Museums Camping;
        cards;
    Dinosaur              NM West 2   6
    Ellis Island          NM East 1   0
    Everglades            NP East 5   2
    Grand Canyon          NP West 5   3
    Great Smoky Mountains NP East 3  10
    Hawaii Volcanoes      NP West 2   2
    Lava Beds             NM West 1   1
    Status of Liberty     NM East 1   0
    Theodore Roosevelt    NP .    2   2
    Yellowstone           NP West 9  11
    Yosemite              NP West 2  13
    ;
    /* 按照region排序
    proc sort data=parks;
    by type region;
    */
    proc print data=parks;
    run;
    
    proc tabulate data=parks missing;
    * class语句列出分类变量,而VAR语句告诉SAS那些变量装的是连续数据;
    class type region;
    var Museums Camping;
    table type all, sum*(museums*format=6.0 camping*format=6.0)*(region all)/
    box='tips' MISSTEXT='none';
    run;
    

    proc report 得到的报告类型,部分依据于使用的数值类型。
    只要报告中起码有一个字符串变量,默认的报告就是每个观测值一行。但如果报告全是数值
    变量,默认 proc report 将会加总这些变量,即使是日期变量也会被加总。;

    * 同print输出;
    proc report data=parks nowindows headline;
    title 'Report with Character and Numberic variable';
    run;
    

    全部数值型变量 默认加总;

    proc report data=parks nowindows headline;
        column museums camping;
        Title 'Report with only Numeric Variables';
    run;
    

    输出同上;不同就是label修改顶部标语

    proc tabulate data=parks;
        var museums camping;
        table sum=''*(museums camping)*format=6.2;
        label museums = 'mus' camping='cam';
        Title 'Report with only Numeric Variables';
    run;
    

    define

    Define 用来为单个变量指定一些选项,基本形式为:
    DEFINE variable/options’column-header’;
    Usage 选项 这个选项告诉 SAS 如何使用这个变量,可能的 usage 选项包括:
    Across:为变量的每一个变量值都创建一个列
    Analysis:为变量创建统计量,数值变量默认有这个 usage 选项,且统计量默认为 sum。
    Display:为数据集中的每一个观测值都创建一行,对于字符串变量,这个选项是默认的。
    Group:为每个变量的变量值都创建一行。
    Order:为每个观测值都创建一行,且行值的排列是是按照指定的变量来顺序。

    * define xxxx / order 'YYYY',修改顶部;
    proc report data=parks missing;
        column region name museums camping;
        define region / order 'reg';
        * define museums / order;
        define camping / analysis 'Camp/Groups' format=6.2;
        Title 'National Parks and Monuments Arranged by region';
    run;
    
    proc report data=parks missing;
       column type region museums camping;
       define type / group;
       define region / group;
       title 'yyyyyyyy';
    run;
    
    proc report data=parks missing;
        column type, (region, (museums camping));
        define region /across;
        define type / across;
    run;
    

    注意下面两种写法

    proc report data=parks missing;
        column region type, (museums camping);
        * group 行;
        define region /group;
        * across 列;
        define type / across;
    run;
    

    使用tabulate

    proc tabulate data=parks missing;
    class region type;
    var museums camping;
    table region,type*(sum=''*(museums camping))/
    box='tip';
    

    Break 语句
    可以为报告增加停顿,为每个指定的变量的变量值增加停顿。基本形式如下:
    BREAK location variable/options;
    RBREAK location/options;
    Location 有两种可能值——before 和 after,决定是之前停顿还是之后停顿。斜杠之后的选项告诉 SAS 插入哪种停顿,主要类型有:
    OL 停顿的地方加入横线
    Page 开始一个新的页面
    Skip 插入一个空行
    Summarize 插入数值变量之和
    UL
    需要注意的是, break 要求指定一个变量,而 rbreak 不需要。因为 rbreak 只产生一个停顿(开
    始或结尾),而 break 语句为指定的变量的每一个变量值都产生停顿。这个变量必须是 group
    变量或 order 变量,并且要在 define 语句中定义过。可以在任何报告中使用 rbreak 语句,但
    只能在有最起码一个 group 或者 order 变量的报告中使用 break 语句。

    proc report data=parks nowindows headline;
        column name region museums camping;
        define region / order;
        break after region / summarize ol skip;
        rbreak after /summarize ol skip;
        title 'National parks';
    run;
    

    使用tabulate不能画出类似的图,很难办到

    加入统计量

    简单的方法是在 column 语句中加入统计量的关键字,常用的有:
    Max、 min、 mean、 median、 n、 nmiss、 p90、 pctn、 pctsum、 std、 sum
    给变量应用统计量 给变量应用统计量,在变量和统计量之间插入逗号即可,统计量 N 不
    需要逗号。如:
    COLUMN Age,MEDIAN N;
    为多个变量应用多个统计量,需要括号,如下面代码要求一个变量 age 应用两个统计量 min
    和 max;两个变量 height 和 weight 应用一个统计量 mean:
    COLUMN Age,(MIN MAX)(Height Weight),MEAN;

    proc report data=parks nowindows headline;
        column type region N (museums camping), mean;
        define region / group;
        define type / group;
        title 'Statistics with two Group Variables';
    run;
    
    proc report data=parks nowindows headline;
        column region N type, (museums camping), mean;
        define region / group;
        define type / across;
        title 'Statistics with a Group and Across Variable';
    run;
    

    比较异同

    proc report data=parks nowindows headline;
        column type N (museums camping),mean;
        define type / group;
        title 'test';
    run;
    
    proc report data=parks nowindows headline;
        column type N (museums camping),mean;
        define type / across;
        title 'test';
    run;
    

    相关文章

      网友评论

          本文标题:proc-tabulate-report

          本文链接:https://www.haomeiwen.com/subject/mniatftx.html