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

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

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

<-As_adjacency_matrix (g, attr = "Dist")

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

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

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

ms_autolog<-autologistic (Занятость ~ Площадь, A = A)

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

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

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

Спасибо заранее!

Ана Мария.

1 ответ

Решение

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

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

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

Другие вопросы по тегам