2017-09-29 10 views
1

데이터 집합의 두 열에 연결된 구성 요소를 얻기 위해 R에서 igraph 패키지를 사용하는 방법을 알고 있습니다.각 구성 요소 (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 

이 정보가 도움이되기를 바랍니다. 당신이

답변

1

당신은 수행하여 회원을 추출 할 수 있습니다 감사 중 하나

df$ID <- cluster$membership[as.character(df$A)] 

또는

df$ID <- cluster$membership[as.character(df$B)] 

이 모두 제공해야합니다 :

마찬가지로
df 
# 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 
+1

, 테이블의 회원 관계를 둘 수 있었다 memDT = data.table (id = as.integer (names (cluster $ mem)), g = as.integer (cluster $ mem)); df [memDT, on =. (A = id), g : = i.g]' – Frank

+0

의미가 있습니다. 감사. – symphony