[R] howto join matrices produced by rcorr()

Alexander Schuster galak at gmx.net
Mon Dec 30 17:18:01 CET 2013


Hi,

i have used rcorr() for calculating pearsons r and according p-values
for my data, giving me 2 matrices.

Now I would like to print scatterplots for all results with "good"
correlation values.

So i need a way to extract the row-name and column-name for each item in
the matrix with "good" r-values, so i can use them in the
plot()-function on my original dataframe programmatically.

below is what i have got - and now i'm stuck:

--------------------------------------
incomingData <- read.csv(inputfile, header=TRUE, na="NA")
datamatrix <- data.matrix(incomingData)
library(Hmisc)
output <- rcorr(datamatrix, type="pearson")

# get short variables to ease reading
r <- output$r
n <- output$n
P <- output$P

r[n<5]<-NA # ignore less than five observations
r[r>-0.5 & r<0.5]<-NA # take only "good" korrelations
P[is.na(r)]<-NA # delete P values for deleted korrelations

r <- format(round(cbind(rep(-1.11, ncol(r)), r), 2))[,-1] ## trunctuate
matrix with correlations to 2 decimals

P <- format(round(cbind(rep(-1.11, ncol(P)), P), 4))[,-1] ## trunctuate
matrix with P-Values to 4 decimals

make_plot <- function(a,b,Rval,Pval,aname,bname) {
	png(paste(aname,'_vs_',bname,'.png', sep=""))
	plot(a,b, main="Rval(p=Pval)")
	fitline <- lm(a~b)
	abline(fitline)
	dev.off()
}

-------------------------------------

Big Thanks for any ideas on this, Alex



More information about the R-help mailing list