美文网首页
关于Proc SQL一个日志Note的介绍

关于Proc SQL一个日志Note的介绍

作者: 野藤_ | 来源:发表于2021-01-11 14:10 被阅读0次

    在一个项目的SAS程序log的检查中,一个关于Proc SQL的Note一直存在,在我们公司它是可以接受的。我简单说明下它产生的原因。这个Note的具体内容是:

    Note: The query requires remerging summary statistics back with the original data.
    (该查询需要将汇总统计信息重新与原始数据合并。)

    我用SASHELP逻辑库中的Class进行演示说明这个Note是如何产生的。在日常的统计分析中,汇总分析很常见,比如计算各分组的计数、均数、标准差等等统计量。下面我用SQL步来计算班级男女身高的计数和均数。

    代码如下:

    proc sql noprint;
      create table a as
        select sex, count(height) as n, mean(height) as mean
        from sashelp.class
        group by sex;
    quit;
    

    输出数据集如下:


    Output1

    日志结果显示也是正常的:


    Log1

    这时候我们更新一下代码,把Class数据集中其他变量保存下来。

    proc sql noprint;
      create table a as
        select *, count(height) as n, mean(height) as mean
        from sashelp.class
        group by sex;
    quit;
    

    输出数据集如下:


    Output2

    日志结果也出现了开头提到的那个Note:


    Log2

    这个结果如何解释呢?在使用Proc SQL进行分组汇总时,如果要保留除分组变量外的其他原始变量时,SAS会自动将分组汇总的结果,以分组变量为连接,合并到原始数据记录中。如果不保留其他原始变量,SAS仅按组别展示汇总信息(记录数与组别数目一致)。

    如果只保留一个原始变量,可能更容易理解一点:

    proc sql noprint;
      create table a as
        select name, count(height) as n, mean(height) as mean
        from sashelp.class
        group by sex;
    quit;
    
    Output3 Log3

    如有疑问,欢迎评论区留言反馈。

    相关文章

      网友评论

          本文标题:关于Proc SQL一个日志Note的介绍

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