Извлеките все треугольники в Igraph с метками
Я создал игру с 1000 ребрами. Моя цель состоит в том, чтобы извлечь все треугольники, найденные в этом изображении, но включить метку, а не только число. Я также хочу, чтобы он был в форме данных, которая имеет 3 столбца (по одному на каждый узел треугольника)
Я попытался просто позвонить:
triangles(graph)
и это возвращает список с именами в одном столбце:
+ 28431/204 vertices, named:
[1] node_a
[2] node_b
[3] node_c
[4] node_a
[5] node_b
[6] node_d
[7] node_a
[8] node_b
[9] node_e
[10] node_a
+ ... omitted several vertices
Когда я пытаюсь:
adjacent.triangles(graph)
он возвращает все числа, но не имена узлов:
[1] 15 103 45 121 152 78 325 325 3 35 90 0 488 283 3 0 325 325 325 325 78 21 190 3
[25] 133 0 47 167 167 6 3 325 505 415 0 36 78 325 78 78 90 6 206 6 36 0 78 49
Мне нужно найти функцию через igraph, которая может дать мне треугольники в следующем формате:
COL1 COL2 COL3
node_a node_b node_c
node_a node_b node_d
node_a node_b node_e
node_f node_g node_h
Любая помощь будет отличной, спасибо!
1 ответ
Решение
Вы можете использовать функцию клика (предполагая, что g - ваш график),
cl.tri=cliques(g,min=3,max=3)
найти клики размера три (треугольники) и затем собрать их в массив данных,
df<-lapply(cl.tri,function(x){V(g)$name[x]})
df2=data.frame(matrix(unlist(df),ncol=3,byrow=T))