1
Rでigraphパッケージを使用して、データセットの2つの列に接続されたコンポーネントを取得する方法を知っています。各コンポーネント(igraph)にクラスタIDを追加する方法
データは、私は次のやりたいこと
library(data.table)
df = fread(
"rn A B
1: 11 6
2: 12 6
3: 11 7
4: 13 2
5: 12 7
6: 12 8
7: 17 2
8: 13 1")[, rn := NULL][]
library(igraph)
g = graph_from_data_frame(df)
cluster = clusters(g)
list = groups(cluster)
を設定し、各連結成分に、クラスタIDを割り当てることです。
A B ID
1: 11 6 1
2: 12 6 1
3: 11 7 1
4: 13 2 2
5: 12 7 1
6: 12 8 1
7: 17 2 2
8: 13 1 2
これは意味があると思います。
df$ID <- cluster$membership[as.character(df$B)]
はどちらが与えるべき
df$ID <- cluster$membership[as.character(df$A)]
または
:
を、テーブル内のメンバーシップの関係を入れることができますmemDT = data.table(id = as.integer(names(cluster $ mem))、g = as.integer(cluster $ mem)); df [memDT、on =(A = id)、g:= i.g] ' – Frank
意味があります。ありがとう。 – symphony