在SAS多个数据集中导出

时间:2014-02-25 10:31:49

标签: sas

我有一组数据集,我想在Excel文件中输出。有没有办法快速完成此操作,而不是每次为每个数据集调用proc导出

%让MyDS =('out.Ids','out.Vars','out.Places')

%让MyDSname =(Ids,Vars,Places)

我想创建一个宏来检查每个数据集是否存在,然后输出到Excel电子表格,其中的Tab名称在相应的MyDSname中指定...

像...%macro Out(MySpreadsheetName,MyDS,MyDSname);

非常感谢你的帮助

1 个答案:

答案 0 :(得分:1)

假设您已获得Access to PC Files许可,最简单的方法(将多个数据集导出到一个工作簿)使用libname。

libname mywbk excel 'c:\pathtomyexcel\excelfile.xlsx';

data mywbk.nameoftab;
set dataset;
run;

在有条件地创建它时,您应该看看如何到达要导出的名称列表。通常,您应该有一个数据集,每个数据集包含一行要导出,以及两列 - DS名称和选项卡名称。然后,您可以将其合并到sashelp.vtablesdictionary.tables,这些视图包含当前SAS会话中的表列表; memname是表的名称,libname是库的名称。然后从中创建一个宏调用:

proc sql;
select cats('%out(',dsname,',',tabname,')') into :calllist separated by ' '
from joinedds;
quit;

libname ... ;
&calllist.;