跳到内容

graph_from_biadjacency_matrix() 从关联矩阵创建一个二分 igraph 图。

用法

graph_from_biadjacency_matrix(
  incidence,
  directed = FALSE,
  mode = c("all", "out", "in", "total"),
  multiple = FALSE,
  weighted = NULL,
  add.names = NULL
)

参数

incidence

输入的二分邻接矩阵。它也可以是来自 Matrix 包的稀疏矩阵。

directed

逻辑标量,是否创建有向图。

mode

一个字符常量,定义有向图中边的方向,对于无向图则忽略。如果为 ‘out’,则边从第一类顶点(对应于二分邻接矩阵中的行)到第二类顶点(关联矩阵中的列)。如果为 ‘in’,则使用相反的方向。如果为 ‘all’ 或 ‘total’,则创建互边。

multiple

逻辑标量,指定如何解释矩阵元素。请参阅下面的详细信息。

weighted

此参数指定是否从二分邻接矩阵创建加权图。如果它是 NULL,则创建一个未加权图,并使用 multiple 参数来确定图的边。如果它是一个字符常量,则为每个非零矩阵条目创建一个边,并将该条目的值添加为由 weighted 参数命名的边属性。如果它是 TRUE,则创建一个加权图,并且边属性的名称将是 ‘weight’。

add.names

一个字符常量,NANULLgraph_from_biadjacency_matrix() 可以将关联矩阵的行名和列名添加为顶点属性。如果此参数为 NULL(默认值)并且二分邻接矩阵同时具有行名和列名,则这些名称将添加为 ‘name’ 顶点属性。如果您想要为此使用不同的顶点属性,请提供属性的名称作为字符串。如果此参数为 NA,则不会添加任何顶点属性(类型除外)。

一个二分 igraph 图。换句话说,一个具有顶点属性 type 的 igraph 图。

详细信息

二分图在 igraph 中具有 ‘type’ 顶点属性,它是布尔值,对于第一类顶点为 FALSE,对于第二类顶点为 TRUE

graph_from_biadjacency_matrix() 可以以两种模式运行,具体取决于 multiple 参数。如果它是 FALSE,则为二分邻接矩阵中的每个非零元素创建一个边。如果 multipleTRUE,则矩阵元素将向上舍入到最接近的非负整数,以获取要在顶点对之间创建的边数。

一些作者将二分邻接矩阵称为“二分关联矩阵”。 igraph 1.6.0 及更高版本不使用此命名,以避免与边-顶点关联矩阵混淆。

参见

make_bipartite_graph() 用于创建二分图的另一种方法

其他二分邻接:as_data_frame()

作者

Gabor Csardi csardi.gabor@gmail.com

示例


inc <- matrix(sample(0:1, 15, repl = TRUE), 3, 5)
colnames(inc) <- letters[1:5]
rownames(inc) <- LETTERS[1:3]
graph_from_biadjacency_matrix(inc)
#> IGRAPH ccb9f5d UN-B 8 8 -- 
#> + attr: type (v/l), name (v/c)
#> + edges from ccb9f5d (vertex names):
#> [1] A--a A--b A--c A--d A--e B--d C--b C--d