代码之家  ›  专栏  ›  技术社区  ›  Tyler Rinker DaniM

获取图形社区的有效方法

  •  4
  • Tyler Rinker DaniM  · 技术社区  · 7 年前

    我有以下类型的数据,我知道那里会有很多不相关的社区(良好的分离)。我想有效地(快速且最好是低/无依赖性)将数据分离到它们的社区中。我知道我可以用 图解 做这项工作,但希望有一个快速的基础R方法来提取这些社区。我展示了如何使用下面的i图来分隔社区。

    有没有一种快速的、基于R的方法来提取社区? 共享非基r方法也很好,因此这个问题对未来的搜索者更有用。

    dat <-  data.frame(
        x = c('A', 'A', 'B', 'C',    'D', 'F',   'E',    'W', 'X', 'R', 'W'),
        y = c('A', 'B', 'C', 'C',    'F', 'F',   'E',    'Y', 'P', 'P', 'P')
    )
    
    mat <- xtabs(~ x + y, data = dat)
    
    library(igraph)
    g <- graph.data.frame(dat)
    plot(g)
    
    clust <- cluster_walktrap(g)
    
    data.frame(
        val = clust$names,
        group = clust$membership
    )
    

    期望输出

    ##    val group
    ## 1    A     2
    ## 2    B     2
    ## 3    C     2
    ## 4    D     3
    ## 5    F     3
    ## 6    E     4
    ## 7    W     1
    ## 8    X     1
    ## 9    R     1
    ## 10   Y     1
    ## 11   P     1
    

    enter image description here

    0 回复  |  直到 7 年前