* A macro to display a third dimension in scatterplot matrix; %macro scatmat5(data,matrixvar,groupvar); proc univariate data=&data noprint; var &groupvar; output out=Pctls pctlpts=20 40 60 80 pctlpre=P_ pctlname=P20 P40 P60 P80; run; proc print;run; data _null_; set Pctls; call symput('P20',left(put(P_P20,best10.))); call symput('P40',left(put(P_P40,best10.))); call symput('P60',left(put(P_P60,best10.))); call symput('P80',left(put(P_P80,best10.))); run; data z_scatmat; set &data; pctile=' 0_20'; if &groupvar>&P20 then pctile=' 20_40'; if &groupvar>&P40 then pctile=' 40_60'; if &groupvar>&P60 then pctile=' 60_80'; if &groupvar>&p80 then pctile='80_100'; run; title 'Scatterplot Matrix of' &matrixvar ', grouped by' &groupvar 'Percentiles'; proc sgscatter data=z_scatmat; matrix &matrixvar/ group=pctile; run; title ' '; %mend scatmat5; %scatmat5(ma2612.eg8_1,z2 y1-y3,z1); %scatmat5(ma2612.eg8_1,z1 y1-y3,z2); %scatmat5(ma2612.eg8_1,z2 y4-y6,z1); %scatmat5(ma2612.eg8_1,z1 y4-y6,z2);