*First we read in a test data set for you; data mydata; input BAD VAR2 VAR3 VAR4 VAR5 VAR6 VAR7 VAR8 VAR12 ALPHA $; cards; 1 20 22 1 55 1 1 9 0.791533 ABCDEF 0 20 33 5 44 0 1 9 0.58006 ABCDEF 1 30 55 2 55 1 0 9 0.030765 ABCDEF 0 10 29 3 32 0 0 9 0.728529 ABCDEF 1 30 65 2 25 1 1 3 0.855352 ABCDEF 1 30 99 2 25 1 1 1 0.186514 ABCDEF 1 30 66 1 43 1 1 2 0.435062 ABCDEF 0 10 22 2 32 0 0 9 0.926317 ABCDEF 0 20 29 4 32 0 0 9 0.819711 ABCDEF 1 30 67 3 25 1 1 9 0.755185 ABCDEF 1 20 66 1 25 1 1 1 0.82157 ABCDEF 0 20 22 5 27 0 0 9 0.381826 ABCDEF 0 30 30 3 32 0 1 9 0.69663 ABCDEF 0 30 22 2 32 0 0 9 0.805265 ABCDEF 0 20 29 3 32 0 0 9 0.873597 ABCDEF 1 10 49 2 38 0 0 9 0.109114 ABCDEF 0 30 24 4 32 0 0 9 0.042165 ABCDEF 0 20 21 4 54 1 0 9 0.090542 ABCDEF 0 10 29 4 32 0 0 9 0.161341 ABCDEF 0 30 23 5 27 0 0 9 0.217645 ABCDEF 1 10 28 2 32 0 0 9 0.937066 ABCDEF 0 30 49 3 44 0 0 9 0.554767 ABCDEF 1 30 49 2 32 1 0 9 0.184839 ABCDEF 0 20 29 3 32 0 1 9 0.51089 ABCDEF 1 20 66 1 25 1 1 9 0.214085 ABCDEF 0 30 33 2 34 0 0 9 0.476002 ABCDEF 0 20 29 4 32 0 0 9 0.687496 ABCDEF 1 10 46 1 43 1 0 9 0.601898 ABCDEF 0 10 30 3 32 0 0 9 0.746762 ABCDEF 1 30 65 1 25 1 1 9 0.813671 ABCDEF 1 20 44 3 25 1 1 1 0.577398 ABCDEF 1 10 59 2 55 0 1 2 0.291862 ABCDEF 0 10 24 5 27 0 0 9 0.235653 ABCDEF 0 10 22 5 27 0 1 9 0.279852 ABCDEF 0 20 22 3 37 1 0 9 0.740561 ABCDEF 1 10 77 1 25 1 1 1 0.761611 ABCDEF 0 20 30 3 32 0 0 9 0.134736 ABCDEF 0 10 33 4 32 0 0 9 0.351236 ABCDEF 1 10 55 1 25 1 1 4 0.350707 ABCDEF 1 30 56 1 26 1 1 2 0.554283 ABCDEF 0 30 68 1 43 1 0 9 0.751453 ABCDEF 1 20 55 2 55 1 0 9 0.55211 ABCDEF 1 30 77 2 24 1 1 9 0.714435 ABCDEF 0 30 49 3 44 0 0 3 0.692118 ABCDEF 1 30 59 2 55 0 0 9 0.09301 ABCDEF 0 10 29 3 32 0 0 9 0.840332 ABCDEF 0 30 49 2 38 0 1 9 0.169412 ABCDEF 1 20 49 3 44 0 0 3 0.635838 ABCDEF 1 20 59 2 55 0 1 1 0.871939 ABCDEF 0 30 49 2 44 0 0 9 0.45459 ABCDEF 1 20 55 1 27 1 1 9 0.653539 ABCDEF 0 30 19 6 46 1 0 9 0.95832 ABCDEF 0 10 29 3 32 0 0 9 0.293503 ABCDEF 0 10 29 3 32 0 0 9 0.893453 ABCDEF 1 30 66 1 43 1 0 1 0.816852 ABCDEF 1 20 55 2 55 1 0 9 0.385023 ABCDEF 1 10 55 2 55 1 0 3 0.585017 ABCDEF 1 10 28 2 32 0 0 9 0.112736 ABCDEF 0 30 22 3 32 0 0 9 0.958921 ABCDEF 1 20 59 2 55 0 0 9 0.966912 ABCDEF 0 30 45 3 32 0 0 9 0.0473 ABCDEF 1 10 49 2 38 0 0 9 0.620112 ABCDEF 1 20 28 2 38 0 0 9 0.68911 ABCDEF 0 10 33 2 32 0 1 9 0.837598 ABCDEF 1 10 22 2 37 1 0 9 0.428998 ABCDEF 0 30 33 5 27 0 1 9 0.455931 ABCDEF 0 30 33 4 32 0 0 9 0.731894 ABCDEF 1 10 28 2 38 0 0 9 0.789909 ABCDEF 1 20 59 2 55 0 0 1 0.290774 ABCDEF 0 30 33 4 37 1 0 9 0.547194 ABCDEF 1 20 33 1 25 1 0 9 0.896589 ABCDEF 1 10 55 2 55 1 0 9 0.689193 ABCDEF 0 30 78 2 43 1 1 9 0.061569 ABCDEF 1 20 67 1 43 1 0 9 0.03787 ABCDEF 1 20 49 2 32 1 0 9 0.746467 ABCDEF 0 10 30 3 32 0 1 9 0.71046 ABCDEF 1 10 66 1 25 1 1 9 0.150983 ABCDEF 1 10 49 2 38 0 1 9 0.676569 ABCDEF 1 20 56 1 43 1 0 1 0.978532 ABCDEF 1 20 78 1 25 1 1 9 0.185021 ABCDEF 1 30 55 2 55 1 0 9 0.153698 ABCDEF 0 30 22 2 37 1 0 9 0.100587 ABCDEF 1 30 59 2 55 0 0 9 0.977505 ABCDEF 1 20 55 2 55 0 0 3 0.781166 ABCDEF 0 30 23 3 37 0 1 9 0.171081 ABCDEF 1 10 49 3 44 0 0 5 0.267002 ABCDEF 1 10 49 3 38 0 0 9 0.935018 ABCDEF 0 10 43 5 24 0 0 9 0.602167 ABCDEF 0 10 23 4 32 0 0 9 0.74257 ABCDEF 1 20 49 3 44 0 0 5 0.941777 ABCDEF 0 30 31 2 32 0 0 9 0.783983 ABCDEF 0 30 33 5 27 0 1 9 0.100045 ABCDEF 0 20 22 3 37 0 0 9 0.027626 ABCDEF 1 30 77 5 22 1 0 9 0.839419 ABCDEF 1 30 59 2 55 0 1 2 0.579814 ABCDEF 0 20 22 5 32 0 0 9 0.512515 ABCDEF 1 30 55 1 23 1 1 9 0.511528 ABCDEF 0 30 30 3 32 0 0 9 0.965713 ABCDEF 1 10 49 2 44 0 0 1 0.021495 ABCDEF 0 20 22 3 32 0 0 9 0.012336 ABCDEF 1 10 68 1 43 1 0 9 0.240498 ABCDEF 1 10 49 2 55 1 0 1 0.162414 ABCDEF 1 20 49 2 55 1 0 1 0.332437 ABCDEF 0 20 29 3 32 0 0 9 0.879268 ABCDEF 0 10 24 4 27 0 0 9 0.724304 ABCDEF 1 20 36 4 37 1 0 9 0.484362 ABCDEF 0 30 32 2 37 1 1 9 0.8418 ABCDEF 1 10 57 1 25 1 1 2 0.008626 ABCDEF 0 10 21 2 37 1 0 9 0.679064 ABCDEF 1 20 59 2 55 0 1 2 0.923857 ABCDEF 0 30 22 2 32 0 0 9 0.56039 ABCDEF 0 10 31 2 32 0 0 9 0.863525 ABCDEF 0 30 29 4 32 0 0 9 0.587931 ABCDEF 1 20 55 1 25 1 1 1 0.283987 ABCDEF 1 10 89 1 22 1 0 9 0.937773 ABCDEF 0 30 22 3 66 1 0 9 0.567971 ABCDEF 0 10 22 5 27 0 0 9 0.393349 ABCDEF 0 30 34 5 23 0 0 4 0.904269 ABCDEF 0 20 29 4 32 0 0 9 0.720225 ABCDEF 1 20 34 1 33 1 1 2 0.22209 ABCDEF 0 10 45 3 32 0 0 9 0.154999 ABCDEF 0 10 20 5 47 1 0 9 0.487965 ABCDEF 1 10 33 3 37 1 0 9 0.149062 ABCDEF 0 20 30 3 32 0 0 9 0.184226 ABCDEF 0 10 45 2 32 0 0 9 0.746296 ABCDEF 0 30 28 3 38 0 0 9 0.496312 ABCDEF 0 20 21 4 37 1 0 9 0.29882 ABCDEF 1 30 76 1 21 1 1 9 0.625453 ABCDEF 0 30 29 3 32 0 0 9 0.420142 ABCDEF 0 30 49 2 38 0 1 9 0.245023 ABCDEF 0 20 55 4 36 1 0 9 0.290797 ABCDEF 1 10 55 1 27 1 1 9 0.207295 ABCDEF 0 10 29 4 32 0 0 9 0.29183 ABCDEF 0 20 24 5 27 0 0 9 0.474352 ABCDEF 1 10 28 3 32 0 0 9 0.31753 ABCDEF 0 30 22 5 27 0 0 2 0.495858 ABCDEF 0 30 29 3 32 0 0 9 0.519436 ABCDEF 1 10 97 2 18 1 1 9 0.536148 ABCDEF 1 30 67 1 25 1 1 9 0.7249 ABCDEF 1 30 55 2 55 1 0 2 0.993585 ABCDEF 0 30 25 3 37 1 0 9 0.757854 ABCDEF 1 10 22 3 37 1 0 9 0.774445 ABCDEF 0 30 28 2 32 0 1 9 0.725221 ABCDEF 0 20 33 2 32 0 1 9 0.566063 ABCDEF 0 30 49 2 44 0 0 1 0.803126 ABCDEF 1 20 22 1 25 1 1 1 0.620885 ABCDEF 1 10 77 2 24 1 1 9 0.185034 ABCDEF 0 10 29 4 32 0 0 9 0.591525 ABCDEF 0 30 55 4 36 1 0 9 0.818192 ABCDEF 0 10 32 2 37 1 1 9 0.615924 ABCDEF 1 20 59 2 55 0 1 2 0.452439 ABCDEF 0 20 29 3 32 0 0 9 0.794314 ABCDEF 1 10 28 3 38 0 0 9 0.59481 ABCDEF 1 20 88 2 43 1 1 1 0.9138 ABCDEF 0 20 29 3 32 0 0 9 0.902852 ABCDEF 0 20 23 4 30 0 0 9 0.463839 ABCDEF 1 30 55 1 25 1 1 1 0.877583 ABCDEF 1 20 88 1 43 1 0 9 0.864896 ABCDEF 1 10 49 2 44 0 0 9 0.179285 ABCDEF 1 30 54 2 25 1 1 2 0.718789 ABCDEF 1 20 55 2 55 1 0 9 0.68318 ABCDEF 0 30 28 2 32 0 0 9 0.330888 ABCDEF 1 20 88 2 23 1 0 9 0.456294 ABCDEF 0 20 44 3 37 1 0 9 0.554051 ABCDEF 0 20 21 4 46 1 0 9 0.19539 ABCDEF 1 10 49 2 38 0 1 9 0.344412 ABCDEF 1 20 55 1 23 1 1 9 0.29784 ABCDEF 0 10 29 3 32 0 0 9 0.322278 ABCDEF 1 10 44 3 25 1 1 1 0.706533 ABCDEF 0 20 31 2 32 0 0 9 0.977669 ABCDEF 0 30 29 3 32 0 0 9 0.095139 ABCDEF 0 30 33 5 24 0 0 9 0.696932 ABCDEF 0 10 33 5 23 0 0 9 0.204931 ABCDEF 0 10 31 2 32 0 0 9 0.882071 ABCDEF 1 30 59 2 55 0 0 1 0.694104 ABCDEF 0 10 22 5 27 0 0 2 0.114065 ABCDEF 0 10 22 2 32 0 0 9 0.007479 ABCDEF 1 20 55 2 55 1 0 9 0.273739 ABCDEF 1 10 43 3 37 1 0 9 0.920749 ABCDEF 0 30 22 5 32 0 0 9 0.826653 ABCDEF 0 10 25 5 27 0 1 9 0.439581 ABCDEF 0 20 31 2 32 0 0 9 0.258062 ABCDEF 0 20 29 4 32 0 0 9 0.01674 ABCDEF 1 20 44 1 43 1 0 9 0.800906 ABCDEF 0 20 45 3 32 0 0 9 0.070814 ABCDEF 0 10 29 3 32 0 0 9 0.565107 ABCDEF 1 30 55 1 23 1 1 9 0.453773 ABCDEF 0 20 30 5 32 0 0 9 0.824868 ABCDEF 0 30 30 3 32 0 1 9 0.573673 ABCDEF 1 10 49 2 44 0 0 9 0.6281 ABCDEF 0 20 30 5 32 0 0 9 0.799247 ABCDEF 0 30 25 4 27 0 0 1 0.38251 ABCDEF 0 10 29 3 32 0 1 9 0.583994 ABCDEF 0 20 33 5 24 0 0 9 0.415387 ABCDEF 1 20 55 2 55 1 0 2 0.187298 ABCDEF 0 30 44 1 43 1 0 9 0.98875 ABCDEF 0 10 29 3 32 0 0 9 0.450917 ABCDEF 1 10 36 4 37 1 0 9 0.366209 ABCDEF 0 30 21 5 27 0 0 9 0.375269 ABCDEF 1 20 66 1 43 1 1 2 0.662063 ABCDEF 0 30 49 3 44 0 0 5 0.361138 ABCDEF 0 30 36 4 37 1 0 9 0.718363 ABCDEF 0 30 30 3 32 0 0 9 0.431675 ABCDEF 1 20 88 1 23 1 1 1 0.143696 ABCDEF 1 20 49 2 38 0 0 9 0.821813 ABCDEF 0 30 45 2 32 0 0 9 0.246392 ABCDEF 1 20 46 1 43 1 0 9 0.551396 ABCDEF 0 20 21 3 44 1 0 9 0.279447 ABCDEF 1 20 66 1 22 1 0 9 0.923456 ABCDEF 0 30 23 4 32 0 0 9 0.67066 ABCDEF 1 20 59 2 55 0 0 2 0.453754 ABCDEF 0 10 22 3 45 1 0 9 0.034456 ABCDEF 0 20 30 3 32 0 0 9 0.674866 ABCDEF 0 10 33 5 24 0 0 9 0.473507 ABCDEF 0 10 29 3 32 0 0 9 0.813951 ABCDEF 0 30 29 3 32 0 1 9 0.953593 ABCDEF 0 10 31 2 32 0 0 9 0.754322 ABCDEF 1 10 78 3 43 1 0 9 0.227924 ABCDEF 0 20 33 4 37 1 0 9 0.985491 ABCDEF 1 20 78 1 21 1 0 9 0.100222 ABCDEF 1 10 88 1 23 1 1 1 0.87848 ABCDEF 1 20 59 2 55 0 0 9 0.367176 ABCDEF 1 30 59 2 55 0 1 1 0.174795 ABCDEF 0 30 43 5 24 0 0 9 0.701943 ABCDEF 1 30 78 1 25 1 1 9 0.073317 ABCDEF 1 30 88 1 23 1 1 1 0.360491 ABCDEF 1 30 66 1 22 1 0 9 0.270685 ABCDEF 1 20 54 2 25 1 1 2 0.441605 ABCDEF 0 20 45 2 32 0 0 9 0.219868 ABCDEF 1 20 49 2 44 0 1 2 0.070118 ABCDEF 0 20 24 5 55 1 0 9 0.843591 ABCDEF 1 10 66 1 43 1 0 1 0.626606 ABCDEF 1 20 44 1 22 1 1 2 0.272602 ABCDEF 1 10 55 2 55 1 0 9 0.280851 ABCDEF 1 30 59 2 55 0 0 9 0.402514 ABCDEF 0 20 30 3 32 0 0 9 0.571997 ABCDEF 0 10 22 3 32 0 0 9 0.400661 ABCDEF 1 20 49 2 44 0 0 9 0.696127 ABCDEF 0 30 66 1 43 1 0 9 0.680299 ABCDEF 1 30 68 1 25 1 1 9 0.297079 ABCDEF 1 30 59 2 55 0 1 1 0.673944 ABCDEF 0 20 28 2 38 0 1 9 0.934191 ABCDEF 1 10 59 2 55 0 0 9 0.659987 ABCDEF 0 20 29 4 32 0 0 9 0.063341 ABCDEF 1 10 55 2 55 1 0 9 0.333197 ABCDEF 0 30 25 5 27 0 1 9 0.873578 ABCDEF 0 10 29 4 32 0 0 9 0.645273 ABCDEF 0 10 55 4 36 1 0 9 0.647001 ABCDEF 0 30 21 4 37 1 0 9 0.310514 ABCDEF 0 30 28 2 38 0 0 9 0.632472 ABCDEF ; *Note: this macro writes a couple scratch files to your hard drive; %macro getlist1(data,textfile,xname); %global nbrvars; *We get the names of the numeric variables; data myvars (keep=name); length name $32; set &data; array x{*} _numeric_; do i=1 to dim(x); call vname(x{i},name); output; end; stop; run; *We write these names out to a text file with macro code embedded; *Two lists are needed.; data _null_; file &textfile; set myvars end=last; if _n_=1 then put '%macro ' &xname";"; put name; if last then put '%mend ' &xname";"; if last then call symput('nvar',_n_); run; data _null_; file './names_2.txt'; set myvars end=last; if _n_=1 then put '%macro names_2;'; put "'" name "'"; if last then put '%mend names_2;'; if last then call symput('nbrvars',_n_); run; %mend getlist1; %macro correlation(data,depv); OPTIONS NOTES SOURCE SOURCE2 MPRINT MLOGIC MERROR SYMBOLGEN; *First we write out the correlation matrix to a file; proc corr data=&data outp=p noprint; *Read into an array starting with the 4th observation representing correlations; *for only numeric variables; %getlist1(p,'./names_1.txt','names_1'); *Write out to a file the first list of variables; *Now you have some macro variables for the names; *These files were placed in a default WIN directory; %inc './names_1.txt'; %inc './names_2.txt'; *Extracting information from correlation matrix - upper right corner; data getr (keep=VAR_1_LABEL VAR_2_LABEL p_corr abscorr); set p (firstobs=4); * First read the correlations into the array; array pcorr {&nbrvars} %names_1; * Next read the variable names into a string array; array varnames {&nbrvars} $32 (%names_2); if _TYPE_='CORR' then do; do i=_n_ to dim (pcorr); /* the if statement below excludes correlations of 1 derived from self-correlations*/ if _n_^=i then do; p_corr=pcorr{i}; VAR_1_LABEL=_NAME_; VAR_2_LABEL=varnames{i}; abscorr=abs(p_corr); output; end; end; end; run; *Creating Bivariate data (Getting rid of Pairwise); data bivariate; RETAIN VAR_1_LABEL VAR_2_LABEL P_CORR ABSCORR; set getr; if VAR_1_LABEL ^="&depv" AND VAR_2_LABEL ^="&depv" then delete; run; *Sorting by absolute value; proc sort data=bivariate out=bivariate(drop=abscorr); by descending abscorr; run; TITLE BIVARIATE CORRELATIONS SORTED BY ABSOLUTE VALUE; PROC PRINT DATA=BIVARIATE; *Creating Only Pairwise table (not including depend. var); data getr2; RETAIN VAR_1_LABEL VAR_2_LABEL P_CORR ABSCORR; set getr; if VAR_1_LABEL ="&depv" then delete; if VAR_2_LABEL ="&depv" then delete; run; *Sorting by absolute value; proc sort data=getr2 out=getr2(drop=abscorr); by descending abscorr; run; TITLE PAIRWISE CORRELATIONS SORTED BY ABSOLUTE VALUE; PROC PRINT DATA=getr2; quit; %mend correlation; %correlation(mydata,BAD);