i have a macro it will take input as a country and will give its population.
Then i have another table list of all countries. I want to pass all these countries to that macro.
I tried below way i declared all the countries in a global variable and passed that variable
% let countries=india nepal......;
This is not a efficient way. how can i pass all the values of another table in to that macro. Please throw some inputs.
Yeah.
%macro mymac(a);
proc print data=test;
where name = "&a";
run;
%mend;
proc sort data=have(keep=country) out=country nodupkey;by country;run;
data _null_;
set country;
call execute('%mymacro(country=' ||country|| ')' );
run;
Xia Keshan
Thanks for your reply Xia Keshan,
I am getting one error. Is there anything i am missing in below code?
data test;
set sashelp.class;
run;
data name_list;
input names$;
cards;
Alfred
Henry
John
Ronald
run;
%macro mymac(a);
proc print data=test;
where name = &a;
run;
%mend;
data _null_;
set name_list;
call execute('%mymac('||names||')');
run;
Yeah.
%macro mymac(a);
proc print data=test;
where name = "&a";
run;
%mend;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.