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
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.
Ready to level-up your skills? Choose your own adventure.