DATA Step, Macro, Functions and more

Loop an entire Program

Reply
Contributor
Posts: 33

Loop an entire Program

Hi everyone!

I'm quite new to SAS and I haven't worked with macros yet. Could you tell me if it's possible to loop an entire SAS program. With SAS program I mean different procedures such as DATA and IML. The program contains various random drawings and I would like to loop the program a certain number of times to get different results. The results for each run should be added to the previous results.

Since I'm using different procedures I was wondering if there might be a "simple" macro to do the loop. Or is it smarter to do individual loops for every procedure?

Thanks a million!!!

PROC Star
Posts: 7,363

Loop an entire Program

Depends!  Yes, you can wrap as many things as you would like to within one Macro.  It just can get complicated if you have to manage things like file names, variables, etc.  E.g.,

%macro doit;

   %do i=1 %to 1000000;

       proc whatever;

       run;

       proc whatever;

       run;

       etc.

   %end;

%mend doit;

%doit

Respected Advisor
Posts: 3,777

Re: Loop an entire Program

You can loop an entire program but you may not want to.  You mention random drawings (samples) which suggests to me some sort of simulation.  I would suggest you look at SURVEYSELECT and BY group processing.  Tell us more about what you are actually trying to do.

You may find this paper useful http://analytics.ncsu.edu/sesug/2008/ST-143.pdf

Valued Guide
Posts: 2,175

Loop an entire Program

%include is very handy when you have a few program's to run - or a program to run a few times

Chech the on line doc

Ask a Question
Discussion stats
  • 3 replies
  • 126 views
  • 0 likes
  • 4 in conversation