[R] Correlation between 2 matrices but with subset of variables
R. Michael Weylandt
michael.weylandt at gmail.com
Fri Mar 9 03:29:18 CET 2012
Well, it would be possible to set something up to select out just the
right pairs each time, but on my system the following
a <- matrix(rnorm(40 * 732), 40)
b <- matrix(rnorm(40 * 1230), 40)
system.time(cor(a,b,method = "pearson"))
takes about a tenth of a second so any more elective approach will
probably loose in the interpreter time needed for all the subsetting.
The slowest calculation of this sort (Kendall correlation) takes
about 30 seconds.
In short, just do cor(A,B, method = "pearson") and then subset from
the overall correlation matrix.
On Thu, Mar 8, 2012 at 6:57 PM, A Ezhil <ezhil02 at yahoo.com> wrote:
> Dear All,
> I have two matrices A (40 x 732) and B (40 x 1230) and would like to calculate correlation between them. I can use: cor(A,B, method="pearson") to calculate correlation between all possible pairs. But the issue is that there is one-many specific mappings between A and B and I just need to calculate correlations for those pairs (not all). Some variables in A (proteins, say p1) have more than 3 (or 2 or 1) corresponding mapping in B (mRNA, say, m1,m2,m3) and I would like calculate correlations between p1-m1, p1-m2, and p1-m3 and then for the second variable p2 etc.
> I have the mapping information in another file (annotation file). Could you please suggest me how to do that?
> Thanks in advance.
> Kind regards,Ezhil
> [[alternative HTML version deleted]]
> R-help at r-project.org mailing list
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help