修改SAS统计过程输出结果的小数位数

本文链接:https://www.cnblogs.com/snoopy1866/p/16047222.html

修改输出到数据集中的格式

结合ODS TRACE语句与ODS OUTPUT语句可以将任意过程步的结果输出至数据集中,以便进一步处理。某些情况下,SAS输出结果提供的小数位数可能不符合实际输出的要求,这时候就需要修改默认的数值输出格式了。
例如:使用PROC MEANS过程对数据集sashelp.class中的height变量进行汇总统计。

ods trace on;
ods output Summary = Summary;
proc means data = sashelp.class;
  var height;
run;
ods trace off;


将均值与标准差修改成想要的输出格式:

proc datasets noprint;
    modify Summary;
        format Height_Mean Height_StdDev 5.2;
quit;

修改输出到结果查看器中的格式

如果还需要同时修改结果查看器中的输出格式,就需要使用到模板了。
ODS TRACE ON和ODS TRACE OFF组合使用会在日志中打印过程步包含的可输出的对象及对象的属性,其中包括对象使用的模板:

在命令窗口中输入"odstemplates",打开模板查看器,依次展开"Sashelp.Tmplmst -> Base -> Summary",双击"Summary"即可查看模板源代码,或者使用source语句在日志中显示源代码:

proc template;
    source base.summary;
run;

找到要修改的变量名,然后使用edit语句进行输出格式的修改:

ODS PATH WORK.TEMPLAT(UPDATE) SASHELP.Tmplmst(READ); /*修改后的模板保存在work.templat中*/
proc template;
    edit base.summary;
        edit mean;
            format = 5.2;
        end;
        edit stddev;
            format = 5.2;
        end;
        edit min;
            format = 4.1;
        end;
        edit max;
            format = 4.1;
        end;
    end;
run;

重新运行PROC MEANS过程,结果如下:

为防止修改后的模板对其他输出结果产生影响,最好及时删除work.templat中的临时模板,恢复为默认模板。

proc template;
    delete base.summary;
run;
posted @ 2022-03-23 22:16  Snoopy1866  阅读(696)  评论(0编辑  收藏  举报