因此,我正在使用igraph库计算R中图的交点。我将该命令用作:str(g1 %s% g2 %s% g3)
。
图形统计信息如下:
g1
IGRAPH UN-- 68 41 --
+ attr: name (v/c)
g2
IGRAPH UN-- 149 94 --
+ attr: name (v/c)
g3
IGRAPH UN-- 164 106 --
+ attr: name (v/c)
现在,我将这三个图形的交点计算为:
temp <- str(g1 %s% g2 %s% g3)
当我看到temp
,
IGRAPH UN-- 335 0 --
+ attr: name (v/c)
这怎么可能?当我计算公共元素时,相交图中的最终顶点怎么可能比单个元素更多?
您可以仅使用的keep.all.vertices
参数graph.intersection()
,请参见http://igraph.org/r/doc/graph.intersection.html。如果使用此参数,则需要graph.intersection()
直接调用,而不是使用infix运算符,这样您就可以可以传递额外的参数。使用另一个答案中的示例:
library(igraph)
g1 <- graph.formula(A -- B -- C -- D)
g2 <- graph.formula(C -- E -- D -- C)
g <- graph.intersection(g1, g2, keep.all.vertices = FALSE)
str(g)
#> IGRAPH UN-- 2 1 --
#> + attr: name (v/c)
#> + edges (vertex names):
#> [1] C--D
您可以将两个以上的图形传递给graph.intersection()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句