Порядок точек в матрице пространственных отношений - PullRequest
0 голосов
/ 10 февраля 2019

Учитывая матрицу расстояний между точками в одном измерении, я хотел бы использовать R для преобразования матрицы в упорядоченный вектор точек слева направо (или справа налево, не имеет значения), а также для выводавектор расстояний от первого элемента этого вектора до всех последующих элементов.

Например, эта матрица:

> m2
   A  B C D
A  0 11 2 6
B 11  0 9 5
C  2  9 0 4
D  6  5 4 0

... представляет следующее соотношение:

 2   4    5
A--C----D-----B

И я хотел бы вывести векторы

X = c(A, C, D, B) (or c(B, D, C, A))
Y = c(2, 4, 5) (or c(5, 4, 2)

Буду признателен за любую помощь в этом.

1 Ответ

0 голосов
/ 10 февраля 2019

Мы можем использовать многомерное масштабирование с одним измерением:

(z <- sort(cmdscale(m, k = 1)[, 1]))
#     B     D     C     A 
# -6.25 -1.25  2.75  4.75 

Итак,

(A <- names(z))
# [1] "B" "D" "C" "A"
(B <- unname(diff(z)))
# [1] 5 4 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...