hi sas experts,
here is my original script:
%macro sqlmerchant(name=,test=); if &test then do; Cleaned_flag="Y"; NAME="&name"; end;
%mend sqlmerchant; data TESTING2; set TESTING; format name $CHAR255.; %sqlmerchant(name=A BAKERY CHATERAISE, test=indexw(NEW,"A BAKERY CHATERAISE") & "Merchant Category"n in ("Miscellaneous Stores----Quick Payment Service-Fast Food Restaurants") ); %sqlmerchant(name=A BAKERY CHATERAISE, test=indexw(NEW,"A BAKERY CHATERAISE") & "Merchant Category"n in ("Retail Outlet Services----Bakeries") );
but i shorten my script by removing repeat marco
so i build up a keyword inventory like this:
final_name2
Merchant Category
NEW_NAME2
A A
Professional Services and Membership Organizations----Schools and Educational Services - Not Elsewhere Classified
A A DRIVER TRAINING
A A OPTICAL HONG KONG
Professional Services and Membership Organizations----Opticians, Optical Goods and Eyeglasses
A A OPTICAL HONG KONG
A A OPTICAL YUEN LONG
Professional Services and Membership Organizations----Opticians, Optical Goods and Eyeglasses
A A OPTICAL HONG KONG
can anyone help me to change it into this fore using call execute?
%macro sqlmerchant(name=,test=); if &test then do; Cleaned_flag="Y"; NAME="&name"; end;
%mend sqlmerchant;
data TESTING2; set TESTING; format name $CHAR255.; call execute('keyword2.'||strip(name)||'; set keyword2; test=indexw(final_name2,'||strip(name)||') & "Merchant Category"n in ('||strip(name)||') ); run;');
thanks in advance
harry
... View more