BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
kumarK
Quartz | Level 8

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.

1 ACCEPTED SOLUTION

Accepted Solutions
Ksharp
Super User

Yeah.

%macro mymac(a);

proc print data=test;

where name = "&a";

run;

%mend;

View solution in original post

3 REPLIES 3
Ksharp
Super User

proc sort data=have(keep=country) out=country nodupkey;by country;run;

data _null_;

set country;

call execute('%mymacro(country=' ||country|| ')' );

run;

Xia Keshan

kumarK
Quartz | Level 8

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;

Ksharp
Super User

Yeah.

%macro mymac(a);

proc print data=test;

where name = "&a";

run;

%mend;

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 1831 views
  • 3 likes
  • 2 in conversation