2017-09-01 103 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