I have a correlation matrix
Corrout =
X Z
X 1 0.2
Z 0.4 1
I would like to compute the mean of this correlation matrix excluding the diagonal terms so for example in this simple case it is = 0.3
The column/rownames X and Z are not fixed you can have any number of columns and any number of rows and they can be called anything.
I am not sure how to do this in SAs
Thanks for your help!
Assuming your matrix is in a dataset where rows are identified with labels corresponding to variable names :
data matrix;
input label $ X Z;
datalines;
X 1 0.2
Z 0.4 1
;
proc transpose data=matrix out=list;
by label notsorted;
run;
proc sql;
select mean(COL1) as meanCorr
from list where _name_ ne label;
quit;
PG
Assuming your matrix is in a dataset where rows are identified with labels corresponding to variable names :
data matrix;
input label $ X Z;
datalines;
X 1 0.2
Z 0.4 1
;
proc transpose data=matrix out=list;
by label notsorted;
run;
proc sql;
select mean(COL1) as meanCorr
from list where _name_ ne label;
quit;
PG
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.