【问题标题】:add vertices to graph向图形添加顶点
【发布时间】:2014-07-03 15:51:40
【问题描述】:

我想为图形对象添加顶点,但它不起作用。

g = graph.ring(5)
subG = induced.subgraph(g, c(1,2,3)) ##extract sub-graph
v = V(g)[4] ##add vertex '4' to the sub-graph. 
result = subG + v

我预期的结果将是一个顶点为 1、2、3 和 4 的图形。其中 4 未链接到 1、2、3。但输出是 IGRAPH U--- 7 2 -- Ring graph 好像给subG增加了4个顶点。

这是什么原因以及如何实现我的目标?

【问题讨论】:

  • Error in induced.subgraph(g, 1, 2, 3) : unused argument (3)
  • @GaborCsardi应该是subG=induced.subgraph(g, c(1,2,3)),意思是提取顶点1,2,3形成的子图

标签: r add igraph vertex


【解决方案1】:

我认为您正在寻找add.vertices 命令:

g <- graph.ring(5)
subG <- induced.subgraph(g, c(1, 2, 3))
subG <- add.vertices(subG, 1)

这给了我们

> subG
IGRAPH U--- 4 2 -- Ring graph
+ attr: name (g/c), mutual (g/l), circular (g/l)

> get.adjacency(subG)
4 x 4 sparse Matrix of class "dgCMatrix"

[1,] . 1 . .
[2,] 1 . 1 .
[3,] . 1 . .
[4,] . . . .

【讨论】:

  • 抱歉,我错过了一行代码。我不想只添加一个顶点,而是添加一些特定的顶点,例如将一些节点从大图中添加到子图中,同时保留节点的所有属性。
  • 您的代码计算结果为subG + 4,这会将四个顶点添加到subG;相反,你想要subG + 1
  • 但是v=V(g)[4],它是一个顶点对象,而不是一个整数
  • 您不能将顶点对象从一个图形添加到另一个图形中(因为 igraph 中没有“顶点对象”之类的东西——您只有一个顶点 ID 序列)。您必须手动将顶点添加到新图形中,然后将其属性复制过来。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-04
  • 1970-01-01
  • 2016-08-28
  • 1970-01-01
  • 2020-08-26
  • 1970-01-01
相关资源
最近更新 更多