I can't think of a time when I've used the method shown here to combine data.
But, agreeing with others, it's helpful as an example of "interesting things you can do with the DATA step." There are many uses to having multiple SET statements in a step. I would expect there be to several examples like this in a data step class.
As Astounding wrote, the use of if _N_=1 then set to read a one-observation dataset is common.
If you want to create a cartesian production in the DATA step, you can't do it with merge, but you can with two SET statements.
The double-DOW-loop also relies on multiple SET statements.
When I started using SAS, I wasn't a programmer, I didn't think of it as programming. I thought of the DATA step as being for data cleaning and calculating new variables. Then when I learned about the PDV, and saw steps with multiple SET statements, and DOW loops, and statements before the SET statement, I slowly learned DATA step programming. So even if an example like this isn't a useful coding pattern, understanding how this example works will help you in understanding other more complex coding patterns that are useful. Understanding the limitations, as you've pointed out, is also useful.
As an aside, I wouldn't think it would be a bad interview question: "How would you do a 1:1 merge using a DATA step that does not use the MERGE statement"?
Or, When would the results of the following steps differ?
A)
data want1;
set a;
set b;
run;
B)
options mergenoby=nowarn;
data want2;
merge a b;
run;
I would expect an experienced SAS programmer to understand how the DATA step works, and be comfortable with this sort of stuff.
... View more