2017-09-01 114 views
0

我有一个宏它看起来像这样:SAS-如何PROC EXPORT由宏创建的多个PROC FREQ?

%macro mac_name (st, en=); 
    %do j=1 %to &en.; 
    %let k=%eval(&j.+1); 
     proc freq data=data_name; 
     tables status&j. * status&k./nocol norow nopercent missing; 
     run; 
    %end; 
%mend; 
%mac_name (st=1, en=%sysfunc(week(%sysfunc(today()), u))); 

的输出产生具有相同标题的多个PROC频率表。 我需要将此输出放入Excel电子表格中。理想情况下,所有的处理频率在一张纸上,一张在另一张上面或分开的纸上。

这可能吗?

在此先感谢!

回答

2

最简单的方法是使用ODS EXCEL,如果你有SAS 9.4。

ods excel file="yourfilename.xlsx"; 
proc freq data=sashelp.class; 
    tables age; 
run; 

proc freq data=sashelp.class; 
    tables sex; 
run; 
ods excel close; 

您可以选择是将它们全部放在一张纸上还是单张纸上。如果您有较早版本的SAS,则可以使用ODS TAGSETS.EXCELXP,尽管它们不是“真正的excel”文件。您还可以使用ODS制作CSV文件或其他各种东西。

在你的情况,你就会把开ODS EXCEL行宏的第一呼叫之前(没有先于宏定义)最后一次通话后,然后ODS EXCEL CLOSE线。

+0

完美工作 – Sunny