У меня есть следующее ребро list
с числом, которое связывает край с номером пути. Это определяется следующим matrix
, которую я называю Totallist: `несколько матриц смежности для одного edgelist R
Begin edge end edge path number
1 3 1
3 4 1
4 5 1
6 3 2
3 2 2`
Я хочу построить смежности matrices
для каждого из путей. В этом примере я хочу два matrices
, но может быть и больше. Я написал следующее, но он только находит matrix
для первого пути. Я не уверен, как написать что-то, что будет работать для любого количества путей, которые я бросить на нее:
X<-as.data.frame(table(Totallist[,3]))
nlines<-nrow(X)
nlines
freq<-X[1,2]
diameterofmatrix<-max(Totallist)
X1<-get.adjacency(graph.edgelist(as.matrix(Totallist[1:X[1,2],1:2]), directed=FALSE))
X1<-rbind(X1, 0)
X1<-cbind(X1, 0)
X1
Я также необходим matrices
всех быть таким же размером так, поэтому я добавил дополнительную строку и столбец , Я мог бы продолжать использовать мой метод, но он кажется довольно уродливым. Большое спасибо за любую помощь.
Большое спасибо за ответ. Просто глядя на матрицы смежности, которые дает ваш ответ, я считаю, что они должны быть симметричными по диагонали. Другими словами, запись [i, j] = entry [j, i]. Это не похоже на ваш ответ? – user7512228
Пример, который вы указали, состоит в вычислении неориентированной матрицы смежности, поэтому нет необходимости, чтобы она была симметричной - матрицы, которые я создал, кодировали всю информацию, необходимую в ненаправленной матрице смежности, чтобы представлять пути. Тем не менее, я отредактировал код для создания симметричных матриц, если это то, что вам нужно (хотя это делает его немного беспорядочным). – gfgm
Большое спасибо, я должен был упомянуть, что мне нужны симметричные смежные матрицы. – user7512228