Help using Base SAS procedures

Proc corr

Accepted Solution Solved
Reply
New Contributor
Posts: 4
Accepted Solution

Proc corr

Hi ,

I have to compute correlation of the aproximately 11000 variables. But Proc Corr has restriction of 3000 variables. Could anybody suggest me, if there is any alternative way to accomplish this task. Could you also provide me the possible SAS code(s).

Shyam


Accepted Solutions
Solution
‎09-18-2012 11:19 PM
Super User
Posts: 9,681

Re: Proc corr

You can use a macro to walk throught every single variable for all of them , then append them all together.

data x;
 array _a{*} a1-a11000;
 do j=1 to 10 ;
 do i=1 to dim(_a);
  _a{i}=ranuni(0);
 end;
 output; 
end;drop i j;
run;
proc corr data=x outp=want1 noprint;
 var _all_;
 with a1;
run;

proc corr data=x outp=want2 noprint ;
 var _all_;
 with a2;
run;

 
.............. and so on 

Ksharp

View solution in original post


All Replies
Trusted Advisor
Posts: 2,113

Re: Proc corr

You could do a series of PROC CORRs with chunks of the variables, output the results and then combine the results to further process them.  It is just 16 PROC CORR executions.  Che the documentation for how to code it.

I question the wisdom of that many correlations; some of the results will be just spurious noise.

Doc Muhlbaier

Duke

Solution
‎09-18-2012 11:19 PM
Super User
Posts: 9,681

Re: Proc corr

You can use a macro to walk throught every single variable for all of them , then append them all together.

data x;
 array _a{*} a1-a11000;
 do j=1 to 10 ;
 do i=1 to dim(_a);
  _a{i}=ranuni(0);
 end;
 output; 
end;drop i j;
run;
proc corr data=x outp=want1 noprint;
 var _all_;
 with a1;
run;

proc corr data=x outp=want2 noprint ;
 var _all_;
 with a2;
run;

 
.............. and so on 

Ksharp

New Contributor
Posts: 4

Re: Proc corr

Thanks Ksharp for your coding help. Comments form Doc@Duke and PaigeMiller appreciated.

Trusted Advisor
Posts: 1,615

Re: Proc corr

Doc@Duke said

I question the wisdom of that many correlations; some of the results will be just spurious noise.

This is wise advice. What are you going to do with 11000*10999/2 > 60 million correlations? What is the real problem you are trying to solve with this data?

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 4 replies
  • 243 views
  • 6 likes
  • 4 in conversation