跳到内容

邻接列表是数字向量的列表,包含每个顶点的相邻顶点。此函数从这样的列表创建一个igraph图对象。

用法

graph_from_adj_list(
  adjlist,
  mode = c("out", "in", "all", "total"),
  duplicate = TRUE
)

参数

adjlist

邻接列表。它应该是连贯的,即列表中所有向量中的最大值必须小于向量的数量(=图中的顶点数)。

mode

字符标量,指定要创建的图是无向(‘all’或‘total’)还是有向;在后一种情况下,它包含顶点的输出(‘out’)还是输入(‘in’)邻居。

duplicate

逻辑标量。对于无向图,它指定边是否在列表中包含两次。例如,如果为TRUE,则对于无向的{A,B}边,graph_from_adj_list()期望A包含在B的邻居中,并且B包含在A的邻居中。

如果modeoutin,则忽略此参数。

一个 igraph 图对象。

详细信息

如果您打算对图进行许多(小的)修改,则邻接列表非常方便。在这种情况下,邻接列表比igraph图更有效。

其思路是,您可以使用as_adj_list()将图转换为邻接列表,对图进行修改,最后通过调用graph_from_adj_list()再次创建一个igraph图。

作者

Gabor Csardi csardi.gabor@gmail.com

adjlist().

示例


## Directed
g <- make_ring(10, directed = TRUE)
al <- as_adj_list(g, mode = "out")
g2 <- graph_from_adj_list(al)
isomorphic(g, g2)
#> [1] TRUE

## Undirected
g <- make_ring(10)
al <- as_adj_list(g)
g2 <- graph_from_adj_list(al, mode = "all")
isomorphic(g, g2)
#> [1] TRUE
ecount(g2)
#> [1] 10
g3 <- graph_from_adj_list(al, mode = "all", duplicate = FALSE)
ecount(g3)
#> [1] 20
which_multiple(g3)
#>  [1] FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE
#> [13]  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE