我有一组数据集,我想在Excel文件中输出。有没有办法快速完成此操作,而不是每次为每个数据集调用proc导出
%让MyDS =('out.Ids','out.Vars','out.Places')
%让MyDSname =(Ids,Vars,Places)
我想创建一个宏来检查每个数据集是否存在,然后输出到Excel电子表格,其中的Tab名称在相应的MyDSname中指定...
像...%macro Out(MySpreadsheetName,MyDS,MyDSname);
非常感谢你的帮助
答案 0 :(得分:1)
假设您已获得Access to PC Files
许可,最简单的方法(将多个数据集导出到一个工作簿)使用libname。
libname mywbk excel 'c:\pathtomyexcel\excelfile.xlsx';
data mywbk.nameoftab;
set dataset;
run;
在有条件地创建它时,您应该看看如何到达要导出的名称列表。通常,您应该有一个数据集,每个数据集包含一行要导出,以及两列 - DS名称和选项卡名称。然后,您可以将其合并到sashelp.vtables
或dictionary.tables
,这些视图包含当前SAS会话中的表列表; memname
是表的名称,libname
是库的名称。然后从中创建一个宏调用:
proc sql;
select cats('%out(',dsname,',',tabname,')') into :calllist separated by ' '
from joinedds;
quit;
libname ... ;
&calllist.;