/* Some simple merge and set commands */ data a; input x y z; datalines; 1 3 7 2 4 8 1 4 10 2 1 6 ; run; data b; input x y zz; datalines; 1 3 9 3 4 6 2 2 7 1 1 9 ; run; proc sort data=a; by x; proc sort data=b; by x; run; proc print data=a; proc print data=b; run; /* The data sets are simply stacked; missing */ /* values are assigned to z and zz */ data c; set a b; proc print data=c; run; data cc; set a b; by x; proc print data=cc; run; /* A merge wihtout a BY statement */ /* Values from b overwrite values from a */ data d; merge a b; proc print data=a; proc print data=b; proc print data=d; run; /* Values from a overwrite values from b */ data dd; merge b a; proc print data=a; proc print data=b; proc print data=dd; run; /* There is only one true match-merge here */ proc sort data=a; by x y; proc sort data=b; by x y; data f; merge a b; by x y; proc print data=a; proc print data=b; proc print data=f; run; /* Attempt at many-to-many merge. Did not work well within the lecture. */ data ff; merge a b; by x; run; proc print data=ff; run;