本文链接: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;