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
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!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.