使用标签

时间:2016-05-31 19:35:15

标签: r igraph triangle-count

我创建了一个有1000条边的igraph。我的目标是提取在该igraph中找到的所有三角形,但包括标签而不仅仅是那个数字。我还希望它是一个数据框形式,有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 个答案:

答案 0 :(得分:7)

你可以使用clique函数(假设g是你的图形),

cl.tri=cliques(g,min=3,max=3)

找到大小为3(三角形)的派系,然后按

将它们组装成数据帧
df<-lapply(cl.tri,function(x){V(g)$name[x]})

df2=data.frame(matrix(unlist(df),ncol=3,byrow=T))