Эффективный способ получить граф сообщества - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть следующий тип данных, где я знаю, что будет много не связанных сообществ (хорошее разделение). Я хочу эффективно (быстро и желательно с небольшими / нулевыми зависимостями) разделить данные на их сообщества. Я знаю, что могу использовать 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

...