我有一个看起来像这样的宏:
%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 freq表。 我需要将此输出放入excel电子表格中。理想情况下,所有proc频率都在一张纸上,一张在另一张纸之上或单独的纸张上。
这可能吗?
提前致谢!!!
答案 0 :(得分:2)
如果您使用SAS 9.4,最简单的方法是使用ODS EXCEL
。
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
行。