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;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.