r - 用标签提取 Igraph 中的所有三角形

标签 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

任何帮助都会很棒,谢谢!

最佳答案

您可以使用 clique 函数(假设 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))

关于r - 用标签提取 Igraph 中的所有三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37554214/

相关文章:

R中的SQL查询将两个日期作为参数传递

r - 尝试在 R 中传播数据框

r - 如何根据节点所属的组动态为节点着色?

r - 将列表转换为 igraph 对象以进行绘图的最优雅的方法

java - 如何让我的程序打印特定值的完整直角三角形?

R 将带有向量名称的函数应用于每一行

r - 为 geom_polygon 添加图例

r - 在三方 igraph 上的层内排序顶点

c - 在 C 中打印三角形

graph - 查找图中的所有循环,redux