Извлеките все треугольники в 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))
Другие вопросы по тегам