Hi All
I am not sure whether it was answered before in this community. (Sorry for duplicating). The question is:
If I have a macro with some parameters like this:
%Macro have( A = , B =, C = , D 😃
Program goes here...
%Mend
Now, I want to execute this program many times in the program with different set of parameters
%Have ( A = 1 , B = 2 , C = 3, D = 4);
%Have ( A = 3, B = 3 , C =9, D = 6);
.....................................................
......................................................
This look litte ugly to me as repeating a macro progam. Are there other ways where we can produce the same results but looks nice.
Thank you
You can use a dataset to hold these parameter, then call execute them.
data x;
input a b c d;
cards;
1 2 3 4
3 3 9 6
;
run;
data _null_;
set x;
call execute( '%have(' || a || ',' || ....................... );run;
Is this better?
%Macro have( A , B , C , D )
Program goes here...
%Mend
Now, I want to execute this program many times in the program with different set of parameters
%Have ( 1 , 2 , 3, 4)
%Have (3, 3 , 9, 6)
...................................................
You can use a dataset to hold these parameter, then call execute them.
data x;
input a b c d;
cards;
1 2 3 4
3 3 9 6
;
run;
data _null_;
set x;
call execute( '%have(' || a || ',' || ....................... );run;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.