获取图社区的有效方法

时间:2018-11-15 13:38:24

标签: r graph igraph

我有以下类型的数据,我知道会有很多未连接的社区(良好的分隔)。我想有效地(快速且最好是低依赖性/无依赖性)将数据分成他们的社区。我知道我可以使用 igraph 来完成此任务,但我希望有一种快速的基本R方法来提取这些社区。我通过下面的“我的图表”展示了如何分隔社区。

是否存在一种快速的基本R方法来提取社区? 共享非基本R方法也很好,因此该问题对以后的搜索者更有用。 / p>

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 个答案:

没有答案