У меня есть следующий тип данных, где я знаю, что будет много не связанных сообществ (хорошее разделение). Я хочу эффективно (быстро и желательно с небольшими / нулевыми зависимостями) разделить данные на их сообщества. Я знаю, что могу использовать igraph для выполнения этой задачи, но надеялся, что есть быстрый базовый способ R для извлечения этих сообществ. Ниже показано, как я разделяю сообщества, используя график.
Существует ли быстрый, базовый способ 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](https://i.stack.imgur.com/15t0M.png)