An example is the merge algorithm. Merging always proceeds in the same way. You are given two datasets and the by-variables, you sort them by the by-variables and then merge them. I wrote up a ``standard merge'' macro named %stdmerge:
%macro stdmerge(inds1, inds2, byvar, outds); proc sort data=&inds1 nothreads; by &byvar; run; proc sort data=&inds2 nothreads; by &byvar; run; data &outds; merge &inds1(in=a) &inds2(in=b); by &byvar; if a and b; run; %mend;
In the SAS programs I write, when I want to merge two datasets, all I need to do is say
%stdmerge(firstdataset, seconddataset, by-variable-list, outputdataset)
instead of laboriously typing out the whole thing every time. This clears up an enormous amount of clutter from my SAS programs, making them much more readable.