Get connected components using igraph in R

I would like to find all related components of a graph where components have more than one element.

using clusters , gives membership in different clusters, and using cliques does not give connected components.

This is a continuation of

multiple intersection of lists in R

My main goal is to find all groups of lists that have common elements with each other.

Thanks in advance!

+5
r graph igraph connected-components
source share
1 answer

You can use the results from clusters to subset your nodes according to the size of the cluster.

 library(igraph) # example graph set.seed(1) g <- erdos.renyi.game(20, 1/20) V(g)$name <- letters[1:20] par(mar=rep(0,4)) plot(g) 

enter image description here

 # get cluster cl <- clusters(g) cl # $membership # [1] 1 2 3 4 5 4 5 5 6 7 8 9 10 3 5 11 5 3 12 5 # # $csize # [1] 1 1 3 2 6 1 1 1 1 1 1 1 # # $no # [1] 12 # loop through to extract common vertices lapply(seq_along(cl$csize)[cl$csize > 1], function(x) V(g)$name[cl$membership %in% x]) # [[1]] # [1] "c" "n" "r" # # [[2]] # [1] "d" "f" # # [[3]] # [1] "e" "g" "h" "o" "q" "t" 
+9
source share

All Articles