跳到内容

计算一个顶点属于多少个三角形,或者仅仅列出一个图的三角形。

用法

triangles(graph)

count_triangles(graph, vids = V(graph))

参数

graph

输入图。它可以是有向图,但边方向会被忽略。

vids

要查询的顶点,默认为所有顶点。这可能是数字 ID 向量,或者命名图的符号顶点名称的字符向量。

对于 triangles(),一个顶点 ID 的数字向量,前三个顶点属于找到的第一个三角形,依此类推。

对于 count_triangles(),一个数字向量,所有查询顶点的三角形数量。

详细信息

triangles() 列出一个图的所有三角形。为了效率,所有三角形都在单个向量中返回。前三个顶点属于第一个三角形,依此类推。

count_triangles() 计算一个顶点属于多少个三角形。

作者

Gabor Csardi csardi.gabor@gmail.com

list_triangles(), adjacent_triangles().

示例


## A small graph
kite <- make_graph("Krackhardt_Kite")
plot(kite)

matrix(triangles(kite), nrow = 3)
#>      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
#> [1,]    4    4    4    4    4    4    4    4    6     6     7
#> [2,]    1    1    2    6    6    6    7    7    1     7     2
#> [3,]    2    3    5    1    3    7    2    5    3     8     5

## Adjacenct triangles
atri <- count_triangles(kite)
plot(kite, vertex.label = atri)


## Always true
sum(count_triangles(kite)) == length(triangles(kite))
#> [1] TRUE

## Should match, local transitivity is the
## number of adjacent triangles divided by the number
## of adjacency triples
transitivity(kite, type = "local")
#>  [1] 0.6666667 0.6666667 1.0000000 0.5333333 1.0000000 0.5000000 0.5000000
#>  [8] 0.3333333 0.0000000       NaN
count_triangles(kite) / (degree(kite) * (degree(kite) - 1) / 2)
#>  [1] 0.6666667 0.6666667 1.0000000 0.5333333 1.0000000 0.5000000 0.5000000
#>  [8] 0.3333333 0.0000000       NaN