R igraph 手册页

如果您从 R 中使用 igraph,请使用此选项

[.igraph {igraph}R 文档

查询和操作图,就像它是邻接矩阵一样

描述

查询和操作图,就像它是邻接矩阵一样

用法

## S3 method for class 'igraph'

  x[
  i,
  j,
  ...,
  from,
  to,
  sparse = igraph_opt("sparsematrices"),
  edges = FALSE,
  drop = TRUE,
  attr = if (is_weighted(x)) "weight" else NULL
]

参数

x

图。

i

索引。顶点 ID 或名称或逻辑向量。请参阅下面的详细信息。

j

索引。顶点 ID 或名称或逻辑向量。请参阅下面的详细信息。

...

当前被忽略。

数字或字符向量,给出顶点 ID 或名称。与 to 参数一起,可用于查询/设置一系列边。请参阅下面的详细信息。此参数不能与任何 ij 参数同时存在,如果存在,则 to 参数也必须存在。

数字或字符向量,给出顶点 ID 或名称。与 from 参数一起,可用于查询/设置一系列边。请参阅下面的详细信息。此参数不能与任何 ij 参数同时存在,如果存在,则 from 参数也必须存在。

sparse

逻辑标量,是否返回稀疏矩阵。

逻辑标量,是否返回边 ID。

drop

忽略。

attr

如果不是 NULL,则它应该是边属性的名称。查询并返回此属性。

详细信息

单括号索引图的(可能加权的)邻接矩阵。以下是你可以用它做的事情

  1. 检查图中两个顶点(vw)之间是否存在边

      graph[v, w]

    返回一个数值标量,如果边存在则为 1,否则为 0。

  2. 提取图的(稀疏)邻接矩阵,或其中的一部分

      graph[]
    graph[1:3,5:6]
    graph[c(1,3,5),]

    第一个变体返回完整的邻接矩阵,其他两个返回其中的一部分。

  3. fromto 参数可用于检查多个边的存在。在这种情况下,fromto 都必须存在,并且它们必须具有相同的长度。它们必须包含顶点 ID 或名称。返回一个数值向量,其长度与 fromto 相同,对于存在的边包含 1,对于不存在的边包含 0。例子

      graph[from=1:3, to=c(2,3,5)]

    .

  4. 对于加权图,[ 运算符返回边权重。对于不存在的边,返回零权重。也可以通过给出 attr 参数来查询其他边属性。

  5. 查询边 ID 而不是边的存在或边属性。例如

      graph[1, 2, edges=TRUE]

    返回顶点 1 和 2 之间的边的 ID,如果不存在这样的边则返回零。

  6. 向图中添加一个或多个边。为此,虚构邻接矩阵的元素必须设置为非零数值(或 TRUE

      graph[1, 2] <- 1
    graph[1:3,1] <- 1
    graph[from=1:3, to=c(2,3,5)] <- TRUE

    这不会影响图中已存在的边,即不会创建多个边。

  7. 向图中添加加权边。attr 参数包含要设置的边属性的名称,因此不必是“weight”

      graph[1, 2, attr="weight"]<- 5
    graph[from=1:3, to=c(2,3,5)] <- c(1,-1,4)

    如果网络中已经存在边,则只会更新其权重或其他属性。如果图已经加权,则 attr="weight" 设置是隐式的,无需显式给出。

  8. 删除边。替换语法允许通过指定 FALSENULL 作为替换值来删除边

      graph[v, w] <- FALSE

    从顶点 v 到顶点 w 删除边。由于这可用于删除两组顶点之间的边,无论是成对的

      graph[from=v, to=w] <- FALSE

    还是不是

      graph[v, w] <- FALSE 

    如果 vw 是边 ID 或名称的向量。

[” 允许逻辑索引和负索引,以及通常的 R 语义。例如

  graph[degree(graph)==0, 1] <- 1

从每个孤立顶点向顶点 1 添加边,并且

  G <- make_empty_graph(10)
G[-1,1] <- TRUE

创建一个星图。

当然,索引运算符支持顶点名称,因此可以将顶点而不是数字顶点 ID 提供给“[” 和 “[[”。

标量或矩阵。请参阅下面的详细信息。

参见

其他结构查询:[[.igraph(), adjacent_vertices(), are_adjacent(), ends(), get.edge.ids(), gorder(), gsize(), head_of(), incident_edges(), incident(), is_directed(), neighbors(), tail_of()


[包 igraph 版本 1.3.5 索引]