Получить матрицу расстояний из нескольких списков и пользовательский калькулятор расстояний в R - PullRequest
0 голосов
/ 21 октября 2019

У меня есть 300-400 списков элементов, которые, в свою очередь, представляют собой список из 2 (координаты X и Y), например:

  • Список A (4 элемента): 1X 1Y, 2X2Y, 3X 3Y, 4X 4Y
  • Список B (6 элементов): 1X 1Y, 2X 2Y, 3X 3Y, 4X 4Y, 5X 5Y, 6X 6Y
  • Список C (3 элемента):1X 1Y, 2X 2Y, 3X 3Y
  • Список n (300-400)

Дополнительно, у меня есть специальный калькулятор расстояния от любой точки до другой, который получает элементы (сКоординаты X и Y) и вычисляет реальное расстояние в метрах.

Я хочу составить матрицу расстояний A, B, C, чтобы создать несколько кластеров из наиболее похожих списков, например:

  • ___ A ___ B ___ C
  • A
  • B__7
  • C__9 ___ 4

Чтобы вычислить значения, я сравнил все элементы каждого списка друг с другом (используя мойпользовательский калькулятор расстояния), а затем я взял сумму минимального расстояния для каждого элемента кратчайшего списка. Пример с A & B (4 элемента A против 6 элементов B):

  • ___ 1 ___ 2 ___ 3 ___ 4
  • 1__5 ___ 1 ___ 4 ___ 7
  • 2__3 ___ 3 ___1036 * 2 ___ 4
  • 3 __ 1 ___ 4 ___ 6 ___ 3
  • 4__3 ___ 8 ___ 3 ___ 5
  • 5__4 ___ 1 ___ 4 ___ 6
  • 6__2 ___ 3 ___ 5 ___ 8

В этом случае я добавляю 1 + 1 + 2 + 3 = 7 как минимальное расстояние между A & B.

Пока этоработая, основная проблема состоит в том, чтобы построить все эти вычисления, используя вложенные циклы for-next, которые требуют много вычислительного времени (подумайте о 300-400 списках, содержащих до 20 элементов каждый).

Знаете ли выБолее простой способ работы с ним?

Спасибо и всего наилучшего.

...