DATA Step, Macro, Functions and more

Create loop for running existing macros

Reply
Frequent Contributor
Posts: 79

Create loop for running existing macros

Hello All,

 

 I am stuck while creating macro.

 

I have one macro and want to run this macro 52 times with 52 dates so I should create one macro that will run existing macro for 52 dates but I have that are in disorder( e.g. 20171213, 20171215,20171219).But I can write manually.

 

Want create TEST macro which will run existing macro..

 

 

NOTES:

1) FCF macro will take date one by one and create multiple datasets ..

2) TEST macro wants to create that run 52 times..

 

%macro test;

 

%fcf;

 

%mend fcf;

 

%mend test;

 

 

 

So how should I give these 52 dates in my macro so that existing macro will take all values and run for that dates.Should I give keyword parameter macro? with 52 dates and that will run for all dates.

 

Super User
Posts: 23,998

Re: Create loop for running existing macros

Posted in reply to india2016

CALL EXECUTE. 

Use a data step loop to create your dates and then call the macro once for each date. 

Once your STR variable looks like the correct code (%fcf(date)Smiley Wink then you can uncomment the call execute str and it will execute the str.

 

data call_macro;

do date='01Jan2018'd to '31Dec2018'd;
str = catt('%fcf(', put(date, date9.), ');');
*call execute (str);
end;

run;

@india2016 wrote:

Hello All,

 

 I am stuck while creating macro.

 

I have one macro and want to run this macro 52 times with 52 dates so I should create one macro that will run existing macro for 52 dates but I have that are in disorder( e.g. 20171213, 20171215,20171219).But I can write manually.

 

Want create TEST macro which will run existing macro..

 

 

NOTES:

1) FCF macro will take date one by one and create multiple datasets ..

2) TEST macro wants to create that run 52 times..

 

%macro test;

 

%fcf;

 

%mend fcf;

 

%mend test;

 

 

 

So how should I give these 52 dates in my macro so that existing macro will take all values and run for that dates.Should I give keyword parameter macro? with 52 dates and that will run for all dates.

 


 

Super User
Posts: 6,931

Re: Create loop for running existing macros

Posted in reply to india2016
Ask a Question
Discussion stats
  • 2 replies
  • 79 views
  • 0 likes
  • 3 in conversation