Как объединить 2 матрицы в граф - PullRequest
2 голосов
/ 08 июня 2011

У меня есть 2 симметричные матрицы (математическое значение матриц), одна с расстояниями между местоположениями (местоположения кодируются четырьмя цифрами: 2030, 2059, 2095 ...), которая выглядит следующим образом:
2030 2059 2095 ...<br> 2030 NA 59328 68464<br> 2059 59328 NA 37196<br> 2095 68464 37196 NA<br> ...

и другой с корреляциями между местоположениями:
2030 2059 2095...<br> 2030 1.0000000 0.4651804 0.6185849<br> 2059 0.4651804 1.0000000 0.4428746<br> 2095 0.6185849 0.4428746 1.0000000<br> ...

Мне нужно объединить эти 2 матрицы в график зависимости между расстояниями, но я не знаю, как это сделать вR и учитывая, что у меня есть более 80 мест, я не хочу делать это вручную!Кто-нибудь знает способ сделать это?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 08 июня 2011

Если вы просто хотите построить корреляцию как функцию расстояний, не налагая определенной структуры на график, вы можете просто извлечь нижнюю часть ваших соответствующих матриц, например,

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 голосов
/ 08 июня 2011

Если ваши матрицы хранятся в m1 и m2, работает ли это:

dat <- data.frame(a=as.vector(m1[upper.tri(m1)]),
          b=as.vector(m2[upper.tri(m2)]))
plot(dat$a,dat$b)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...