我有以下类型的数据,我知道那里会有很多不相关的社区(良好的分离)。我想有效地(快速且最好是低/无依赖性)将数据分离到它们的社区中。我知道我可以用
图解
做这项工作,但希望有一个快速的基础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