计算网络中的周期

use*_*502 5 r graph-theory social-networking igraph

最好的方法是什么,或者是否有任何方法可以实现对网络中的 3 个和 4 个周期进行计数。

3 个周期等于从一种模式网络计算的三个节点(三角形)的连接组 4 个周期等于从两种模式网络计算的四个节点(正方形)的连接组

如果我有这样的网络:

onemode <- read.table(text= "start end
                              1    2
                              1    3
                              4    5
                              4    6
                              5    6",header=TRUE)

twomode <- read.table(text= "typa typev
                              aa    a
                              bb    b
                              bb    a
                              aa    b",header=TRUE)
Run Code Online (Sandbox Code Playgroud)

我想

 library(igraph)
 g <- graph.data.frame(twomode)
 E(g)
 graph.motifs(g, size = 4) 
Run Code Online (Sandbox Code Playgroud)

会计算我的两种模式网络中的方块数量,但我不明白输出。我以为结果会是1

ags*_*udy 3

?graph.motifs

graph.motifs 在图表中搜索给定大小的图案,并返回包含不同图案数量的数值向量。图案的顺序由它们的同构类定义,请参阅 graph.isoclass。

所以它的输出是数字向量,其中每个值都是图中某个主题(大小为 4 或 3)的计数。

 graph.motifs(g,size=4)
Run Code Online (Sandbox Code Playgroud)

要获取主题的总数,您可以使用graph.motifs.no

graph.motifs.no(g,size=4)
[1] 1
Run Code Online (Sandbox Code Playgroud)

主题的编号是 20

which(graph.motifs(g,size=4) >0)
[1] 20
Run Code Online (Sandbox Code Playgroud)