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!!!
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
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
%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
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.