创建两个或多个图的交集。这些图可能具有相同或重叠的顶点集。
用法
# S3 method for class 'igraph'
intersection(..., byname = "auto", keep.all.vertices = TRUE)
详细信息
intersection()
创建两个或多个图的交集:仅包含所有图中存在的边。对应的运算符是 %s%
。
如果 byname
参数为 TRUE
(或 auto
且所有图都已命名),则操作将基于符号顶点名称而不是内部数字顶点 ID 执行。
intersection()
保留所有图的属性。所有图、顶点和边属性都会被复制到结果中。如果一个属性存在于多个图中,并且会导致名称冲突,则通过添加后缀:_1、_2 等来重命名该属性。
如果基于符号顶点名称执行操作,则 name
顶点属性将被特殊处理。在这种情况下,name
必须存在于所有图中,并且不会在结果图中重命名。
如果某些输入图是有向的,而另一些是无向的,则会生成错误。
参见
用于操作图结构的其他函数:+.igraph()
, add_edges()
, add_vertices()
, complementer()
, compose()
, connect()
, contract()
, delete_edges()
, delete_vertices()
, difference()
, difference.igraph()
, disjoint_union()
, edge()
, igraph-minus
, intersection()
, path()
, permute()
, rep.igraph()
, reverse_edges()
, simplify()
, union()
, union.igraph()
, vertex()
作者
Gabor Csardi csardi.gabor@gmail.com
示例
## Common part of two social networks
net1 <- graph_from_literal(
D - A:B:F:G, A - C - F - A, B - E - G - B, A - B, F - G,
H - F:G, H - I - J
)
net2 <- graph_from_literal(D - A:F:Y, B - A - X - F - H - Z, F - Y)
print_all(net1 %s% net2)
#> IGRAPH 35225fb UN-- 13 4 --
#> + attr: name (v/c)
#> + vertex attributes:
#> | name
#> | [1] D
#> | [2] A
#> | [3] B
#> | [4] F
#> | [5] G
#> | [6] C
#> | [7] E
#> | [8] H
#> | [9] I
#> | [10] J
#> | [11] Y
#> | [12] X
#> | [13] Z
#> + edges from 35225fb (vertex names):
#> [1] F--H A--B D--F D--A