2016-11-09 62 views
0

我使用這個代碼:變換日期宏變量被用來創建動態數據集名稱

LibraryName.Bla_&SomeDate._&AnotherDate.; 

創建動態數據集名稱。該代碼例如生成:

LibraryName.Bla_2016-10-29_2016-11-12 

哪些SAS不喜歡。我能做些什麼來解決這個問題?我想這將是一個有效的名稱:

LibraryName.Bla_2016_10_29_2016_11_12 

回答

2

一個選項名爲文字:

LibraryName."Bla_&SomeDate._&AnotherDate."n; 

這應該允許您使用它。可能或不是一個好的想法,但它是可能的。

如果您喜歡使用正常的SAS名稱,則可以在%sysfunc調用中處理它。如果你永遠只能有-,你想他們是_,很容易:

%let somedate=2016-10-29; 
%let anotherdate=2016-11-12; 
%let datasetvar = %sysfunc(translate(Bla_&somedate._&anotherdate.,_,-)); 
%put &=datasetvar.; 

如果您有其他角色也可能是更復雜的,視情況而定;您可以使用sas函數nvalid來查看它是否是一個合法的變量名(例如,它也或多或少與數據集或'成員'名稱相同的一組規則)。

+0

作爲一個側欄,這種事情並不少見,如果你環顧四周,你可以找到各種人的代碼來做更復雜的版本;特別是看看發佈實用程序宏庫的各種人,因爲這種事情會成爲其中許多人的一部分。 – Joe

+0

謝謝。我谷歌有點,但你可以請這麼友善,並指出我好的實用宏庫?謝謝! – cs0815