2015-05-07 39 views
0

問候SAS專家,我如何獲得這個%宏來評估我想要的方式?

我有很多語句,將改變那些結構是這樣的:

if item = '0123' then e123 = data1; if item = '0541' then r541 = data2; 

變量項目包含的數字字符值。

我有很多像上面的線,我想寫一個數據步驟的宏中,可以讓我做這樣的事情

%macro ifcondition(newitem); 
if item = '&newitem' then E&newitem = data1; 
if item = '&newitem' then R&newitem = data2; 
%mend; 

%ifcondition(0123); 

所以我想這樣做的許多變體。 ..

%ifcondition(0123); 

來評價這樣的:

if item = '0123' then E= data1; if item = '0123' then R= data2; 

什麼是我可以修改t時的最簡單的方法他的工作是否正確?

謝謝!

+1

替換單引號用雙引號已經解決了宏觀變量。 – DaBigNikoladze

+0

一個解決方案是從'&newitem'中刪除單引號。將此單引號移至您調用宏的位置:%ifcondition('0123'); –

回答

0

簡單地使用雙引號,這個工作對我來說:

data want; 
input item $ try $ try2 $; 
datalines; 
0100 abcd aa 
0101 pipp bb 
0102 plut cc 
2000 gian dd 
2001 luca ee 
2002 tryu ff 
3007 troy gg 
3156 boss hh 
; 

%macro ifcondition(newitem); 
if item = "&newitem" then E&newitem. = try; 
if item = "&newitem" then R&newitem. = try2; 
%mend; 

data want1; 
set want; 
%ifcondition(0101); 
%ifcondition(3007); 
run; 
+0

非常感謝。解決方案很簡單,但工作得很好。我也能夠用它來評估我想要的方式。 – user650738

相關問題