2017-08-15 402 views
0

我想要使用串聯宏變量更改SAS中的數據集名稱。使用下面的示例代碼,我得到一個錯誤。我的語法是錯誤的還是不可能以這種方式使用連接函數?SAS Proc數據集 - 使用宏變量更改數據集名稱

代碼:收到

%let term=201610; 
%let emp='bob'; 

Proc Datasets library=work; 
change testset = cat(&emp,&term); 
run; 

錯誤:

ERROR 22-322:語法錯誤,需要下列之一:ALTER,mem類型,MT,MTYPE,保護,PW,閱讀,寫。

錯誤76-322:語法錯誤,語句將被忽略。

回答

1

您不需要連接宏變量,它就像查找和替換文本。 因爲你的報價,現在這是會發生什麼:

change testset = cat('bob', 201610) 

但CAT功能是無效的存在。您可以在技術上使用%SYSFUNC()來使用CAT函數,但有一種更簡單的方法。

%let term=201610; 
%let emp='bob'; 

Proc Datasets library=work; 
change testset = &emp&term.; 
run;quit; 

請注意,PROC DATASETS需要QUIT終止。

+1

圍繞'bob'的引號需要刪除以及 – Longfish

+0

謝謝,修復它。 – Reeza