get connected components using igraph in R

后端 未结 1 1923
余生分开走
余生分开走 2020-12-03 08:56

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

using the clusters gives the membership to

相关标签:
1条回答
  • 2020-12-03 09:19

    You can use the results from components to subset your nodes according to the component size.

    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 components
    cl <- components(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"
    
    0 讨论(0)
提交回复
热议问题