Search code examples
sassas-macro

How to concatenate string and numeric SAS Macro and use it in where statement


so I have a code like below

%let THIS_YEAR=2020;

%macro programall;
%do i = 2016 %to &THIS_YEAR;

%let num2  =%eval(&i-2000);
%let xxx= CAT("MP",&num2);

data t_&i.;
set table1;
where GROUP in ("&xxx");
run;

%end;

for example

when i=2016
    num2 = 2016-2000;
    num2 = 16;

and try to concatenate with "MP", so it should create xxx=MP16.

and try to use in where statement.

but it is causing error.

enter image description here

how can I create Macro Variable like "MP16"correctly, so I can use it in where clause?

Thanks


Solution

  • You cannot use functions in macro code, they are just treated as any other text to the macro processor. But there is no need to use a function to concatenate text in macro code. Just expand the macro variable where you want to use the text it contains.

    %let xxx= MP&num2 ;