Смежная матрица из пакета igraph, которая будет использоваться для аутологичной модели в ngspatial пакете в R - PullRequest
0 голосов
/ 20 ноября 2018

Мне интересно запустить аутологическую модель в пакете ngspatial в R. Мои объекты данных - полигоны.Обычно матрицы смежности для многоугольников строятся на основе координат центроидов многоугольников.Тем не менее, я определил свою смежность (0/1) на основе критерия минимального расстояния между полигонами, измеренного от и до границы каждого полигона.Я сделал это в arcmap, а затем с помощью пакета igraph сгенерировал матрицу смежности:

g <-graph_from_data_frame (Мои данные) </p>

A <-as_adjacency_matrix (g, attr =)"Dist") </p>

A

42 x 42 разреженной матрицы класса "dgCMatrix" [[подавление 42 имен столбцов '1', '2', '3' ...]]

Моя матрица состоит из 0 и 1 значений, полностью симметричная (42 x 42).

Однако, когда я пытаюсь использовать ее в аутологичной модели в ngspatial, я получаю сообщение об ошибке:

ms_autolog <-autologistic (Occupancy ~ Area, A = A) </p>

'Вы должны указать числовую и симметричную матрицу смежности'.

Я предположил, что dgCMatrix просто не совместим с ngspatial, но не нашел, как его преобразовать.Я также попытался напрямую сформировать свой файл data.csv в виде матрицы, прочитать его как матрицу, но все же он не может быть прочитан автологистической моделью.

У кого-нибудь есть идеи, как я могу решить эту проблему?

Большое спасибо заранее!

Ана Мария.

1 Ответ

0 голосов
/ 20 ноября 2018

Сложно проверить это без минимального рабочего примера, но вы можете попробовать это:

A <- as_adjacency_matrix(g, attr = "Dist", sparse = F)

Таким образом, вы получите двоичную матрицу с 0 и 1 вместо разреженной матрицы.

...