Получение связанных компонентов в R
У меня есть матрица со значениями 0 или 1, и я хотел бы получить список групп смежных 1.
Например, матрица
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
должен вернуть следующие 4 подключенных компонента:
C1 = {(1,1); (2,1)}
C2 = {(2,4)}
C3 = {(3,3)}
C4 = {(5,1); (5,2); (5,3); (5,4); (5,5)}
У кого-нибудь есть идеи, как сделать это быстро в R? Моя настоящая матрица действительно довольно большая, например 2000x2000 (но я ожидаю, что количество подключенных компонентов будет достаточно маленьким, то есть 200).