Verbundene Komponenten in R beziehen
Ich habe eine Matrix mit den Werten 0 oder 1 und möchte eine Liste von Gruppen benachbarter Einsen erhalten.
Zum Beispiel die Matrix
mat = rbind(c(1,0,0,0,0),
c(1,0,0,1,0),
c(0,0,1,0,0),
c(0,0,0,0,0),
c(1,1,1,1,1))
> mat
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 0 0 0
[2,] 1 0 0 1 0
[3,] 0 0 1 0 0
[4,] 0 0 0 0 0
[5,] 1 1 1 1 1
sollte die folgenden 4 verbundenen Komponenten zurückgeben:
C1 = {(1,1); (2,1)}
C2 = {(2,4)}
C3 = {(3,3)}
C4 = {(5,1); (5,2); (5,3); (5,4); (5,5)}
Hat jemand eine Idee, wie man es in R schnell macht? Meine reale Matrix ist in der Tat ziemlich groß, wie 2000x2000 (aber ich gehe davon aus, dass die Anzahl der angeschlossenen Komponenten angemessen klein ist, d. H. 200).