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