Смежная матрица из пакета 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 вместо разреженной матрицы.