如何使用sas proc过程步产生的结果
如何使用sas proc过程步产生的结果,获得output窗口中的结果,将output窗口中的结果转换成数据集,直接读取output窗口中结果
我们在使用SAS的proc过程步时,所产生的结果默认输出到output窗口。SAS不提供对output窗口数据的直接读取,必须要转换成数据集,并且有时还会需要数据集的变量名(尤其是中文版中的数据集显示的是label)。本文利用ods trace和proc contents 实现对proc univariate过程步的信息读取。
本文使用sashelp中的class数据集做为原始数据集。
Ods简介
Proc 过程步简介
Proc contents简介
第一步,我们要首先获得proc过程步所生成的对象名称。
ods trace on/listing;
proc univariate data=sashelp.class;
var height;
run;
ods trace off;/*查看此过程步生成的对象名称*/
ods trace Arguments
Listing :writes the trace record to the Listing destination, so that each part of the trace record immediately precedes the output object that it describes.
第二步:将proc过程步产生的对象输出为数据集,使用ods output。
ods listing close;
ods output TestsForLocation=TestsForLocation;/*第一个TestsForLocation是生成的数据集名称,第二个TestsForLocation是proc过程步产生的对象名称。*/
proc univariate data=sashelp.class;
var height;
run;
ods listing;/*将生成的对象输出为数据集,这里存放在work逻辑库中*/
ods output
第三步:获得proc contents过程步产生的对象名称。
ods trace on/listing;
proc contents data=TestsForLocation out=a;/*可以生产数据集方便对变量名的统计*/
run;/*查看数据集中各列的属性*/
ods trace off;
在以后的分析中我们需要获得数据集中的变量名称,所以要将Variables对象导出为数据集。代码如下:ods listing close;
ods output Variables=Variables;
proc contents data=TestsForLocation out=a;/*可以生产数据集方便对变量名的统计*/
run;/*查看数据集中各列的属性*/
ods listing;/*将生成的对象输出为数据集,这里存放在work逻辑库中*/