SAS-如何PROC EXPORT由宏创建的多个PROC FREQ?
SAS- how to PROC EXPORT multiple PROC FREQ created by a macro?
我有一个如下所示的宏:
%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)));
输出生成多个具有相同标题的过程频率表。
我需要将此输出放入 excel spreadsheet。理想情况下,所有 proc freqs 都在一个 sheet 中,一个在另一个之上或单独的 sheets。
这可能吗?
提前致谢!!!
最简单的方法是使用 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;
您可以选择将它们全部放在一个 sheet 上还是单独的 sheet 上。如果您有较早版本的 SAS,则可以使用 ODS TAGSETS.EXCELXP
,尽管它们较少 "true excel" 个文件。您还可以使用 ODS
.
制作 CSV 文件或各种其他文件
在你的情况下,你会把开头的 ODS EXCEL
行放在宏的第一个 调用 之前(不必在宏的定义之前)然后是最后一次调用后的 ODS EXCEL CLOSE
行。
我有一个如下所示的宏:
%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)));
输出生成多个具有相同标题的过程频率表。 我需要将此输出放入 excel spreadsheet。理想情况下,所有 proc freqs 都在一个 sheet 中,一个在另一个之上或单独的 sheets。
这可能吗?
提前致谢!!!
最简单的方法是使用 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;
您可以选择将它们全部放在一个 sheet 上还是单独的 sheet 上。如果您有较早版本的 SAS,则可以使用 ODS TAGSETS.EXCELXP
,尽管它们较少 "true excel" 个文件。您还可以使用 ODS
.
在你的情况下,你会把开头的 ODS EXCEL
行放在宏的第一个 调用 之前(不必在宏的定义之前)然后是最后一次调用后的 ODS EXCEL CLOSE
行。