2016-09-12 4 views
0

Я пытался выяснить, как создать пустой матрицу смежности образуют заданную функцию:Как создать матрицу смежности из матрицы расстояния в R?

< AdjDist - функция (distMatrix, расстояние) {}

Все, что я пытался не работает. Есть ли кто-нибудь, кто может помочь с этим? (матрица расстояний 5x5, если это помогает.)

+0

Добро пожаловать в StackOverflow. Пожалуйста, ознакомьтесь с этими советами о том, как создать [минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve), а также этот пост в [создании отличного примера в R] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). Возможно, следующие советы по [заданию хорошего вопроса] (http://stackoverflow.com/help/how-to-ask) также могут быть полезны для чтения. – lmo

+2

Ваш код не имеет смысла. Во-первых, «пустая матрица смежности» - это просто пустая матрица. Во-вторых, '' function'' не является командой. В-третьих, откуда вы взяли '' distMatrix''? Все это предполагает, что вам нужно начать с шагов ребенка с R, прежде чем переходить к созданию матриц ... –

+1

Матрица расстояний - это * плотная * матрица, где каждый элемент - это расстояние между объектом, индексированным строкой, и объектом, индексированным колонка. Матрица смежности * разрежена * в том смысле, что только смежные объекты (т. Е. На графике) имеют элемент, отличный от нуля. Итак, каков критерий смежности, который у вас есть, является функцией расстояния? – aichao

ответ

0

Не совсем понятно, что вы делаете после этого, и, пожалуйста, следуйте советам, как задать полный, воспроизводимый вопрос. «Пустая матрица смежности» является немного нелогичным и намекает на понимание новичком R.

Вы можете легко выполнить анализ смежности с использованием spdep. Надеюсь, это близко к тому, что вам нужно.

Во-первых, библиотеки загрузки и примеры данных (Маас из библиотеки зр)

library(sp) 
library(spdep) 
data(meuse) 
coordinates(meuse) <- ~x+y 

Теперь мы создаем соседний объект и посмотреть на первые шесть наблюдений соседней матрицы с четырьмя соседями, связанными. Номер строки соответствует номеру строки meuse, и каждый столбец является индексом строки ближайшего соседа.

meuse.knn <- knearneigh(coordinates(meuse), k=4) 
    head(meuse.knn$nn) 

Мы можем построить связи к = 4, с использованием структуры графа

plot(meuse, pch=19) 
plot(knn2nb(meuse.knn), coordinates(meuse), add=TRUE) 
    title(main="K nearest neighbours, k=4") 

В настоящее время, для целей иллюстрации, мы можем Подмножество пятого наблюдения в Мезе, и это связанно (к = 4), ближайший наблюдения.

nn1.ids <- as.vector(meuse.knn$nn[5,])    
nn1 <- meuse[nn1.ids,] 

А затем постройте пятое наблюдение в Мезу с 4 ближайшими соседями.

plot(nn1, pch=19, col="red")  
plot(meuse[5,], pch=19, col="black", add=TRUE) 

Фактическая матрица смежности содержится в объекте knearneigh (x $ nn).

Смежные вопросы