This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Correlation Of Correlations In R

I have two gene correlation matrices A and B,

 seed(1) 
  X <- data.frame(matrix(rnorm(2000), nrow=10))
  Y <- data.frame(matrix(rnorm(2000), nrow=10))

I would like to find the correlation between each row of A and B in the following way. For example there should be a correlation value for row 1 of X and row 1 of Y.

Similarly applying for all rows there will be in total ten values ( because there are ten rows)

r correlation

1 answer

Try this:

X <- matrix(rnorm(2000), nrow=10)
Y <- matrix(rnorm(2000), nrow=10)

apply(matrix(1:10),1,
      function(rowID){
        cor.test(X[rowID,],Y[rowID,])$estimate
        })

Thanks , It works. Is it possible to print the row-ids as well along with the values? And also could you please explain how this was done ?

You should really use sapply if you want to do it this way, i.e. sapply(1:10, function(row) cor(X[row,], Y[row,]))

edit: a more satisfying method is diag(cor(t(X), t(Y))) (I'll admit I had to google for this in the end)

Yes, sapply looks neater, still learning R way looping - apply...

Log in to answer this question.