2014-02-25 64 views
1

我有一組,我想在一個Excel文件輸出數據集。有沒有辦法做到這一點很快,而不是調用PROC出口每個數據集在SAS多個數據集出口

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

%每次讓MyDSname =(IDS,瓦爾,鄰居)

我想創建一個檢查,如果每個數據集存在,然後輸出到Excel電子表格中對應的MyDSname指定的標籤名稱宏...

喜歡的東西...%宏輸出(MySpreadsheetName,MyDS,MyDSname);

非常感謝您的幫助

回答

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.; 
+0

你是最好的非常感謝! – qfd

+0

確定IM仍然感到困惑的memname不知道如何訪問呢? – qfd

+0

'memname'是包含的數據集的名稱的變量。你可以通過類似'data test;設置sashelp.vtable;運行;',然後在'memname'上加入/合併到一個包含表名的數據集。 – Joe