Ich habe die folgende Kante list
mit einer Nummer, die die Kante einer Pfadnummer zuordnet. Dies wird durch die folgende matrix
gegeben, die ich Totallist nennen: `mehrere Adjazenzmatrizen für eine Kantenliste R
Begin edge end edge path number
1 3 1
3 4 1
4 5 1
6 3 2
3 2 2`
Ich möchte adjacency konstruieren matrices
für jeden der Pfade. In diesem Beispiel möchte ich zwei matrices
, aber es könnte mehr sein. Ich habe folgendes geschrieben, aber es findet nur matrix
für den ersten Pfad. Ich bin nicht sicher, wie etwas zu schreiben, die für eine beliebige Anzahl von Pfaden arbeiten, die ich an ihm werfen:
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
Ich brauche auch die matrices
alle die gleiche Dimension sein, so dass Deshalb habe ich eine zusätzliche Zeile und Spalte hinzugefügt . Ich könnte weiterhin meine Methode verwenden, aber es scheint ziemlich hässlich. Vielen Dank für jede Hilfe.
Vielen Dank für die Antwort. Betrachtet man nur die Adjazenzmatrizen, die Ihre Antwort gibt, glaube ich, dass sie entlang der Diagonalen symmetrisch sein sollten. Mit anderen Worten, der Eintrag [i, j] = Eintrag [j, i]. Dies scheint in Ihrer Antwort nicht der Fall zu sein? – user7512228
Das Beispiel, das Sie angegeben haben, besteht darin, eine ungerichtete Adjazenzmatrix zu berechnen, so dass sie nicht symmetrisch sein muss - die von mir erzeugten Matrizen kodieren alle Informationen, die in einer ungerichteten Adjazenzmatrix benötigt werden, um die Pfade darzustellen. Allerdings habe ich den Code bearbeitet, um symmetrische Matrizen zu erzeugen, falls Sie das brauchen (obwohl es etwas unordentlicher ist). – gfgm
Vielen Dank, ich hätte erwähnen sollen, dass ich symmetrische Nachbarmatrizen benötigte. – user7512228