2011-06-08 92 views
2

我有2个对称矩阵(矩阵的数学含义),一个位置之间的距离(位置用4位数字编码:2030,2059,2095 ...),看起来像这样的:
2030 2059 2095 ...
2030 NA 59328 68464
2059 59328 NA 37196
2095 68464 37196 NA
...
如何将2个矩阵组合成一个图

,另一个位置之间的相关性:
2030 2059 2095...
2030 1.0000000 0.4651804 0.6185849
2059 0.4651804 1.0000000 0.4428746
2095 0.6185849 0.4428746 1.0000000
...

我需要这2个矩阵中的相互关系与距离的情节相结合,但不知道如何做到这一点的R和考虑到我有超过80个位置,我不想手动完成它!有谁知道有办法做到这一点?

谢谢!

回答

5

如果你只是想绘制的相关性作为距离的函数,而无需对您的情节强加一个特定的结构,你可以提取各个矩阵的下半部分,例如

x <- matrix(rnorm(1000), nrow=20) 
d.mat <- as.matrix(dist(x)) 
c.mat <- cor(t(x)) 
plot(d.mat[lower.tri(d.mat)], c.mat[lower.tri(c.mat)]) 
4

假设您的矩阵存储在m1m2,做这项工作:

dat <- data.frame(a=as.vector(m1[upper.tri(m1)]), 
      b=as.vector(m2[upper.tri(m2)])) 
plot(dat$a,dat$b) 
+0

+1似乎我们在相同的时间回答,提示几乎相同的解决方案。 – chl 2011-06-09 04:53:43

+0

谢谢你们!不幸的是我只能接受1个答案,但是对于Joran来说只能+1 – sbg 2011-06-09 11:18:07

相关问题