4
4

2 回答 2

5

您收到错误是因为给定的顶点之一不在图形顶点列表中。一个建议是尝试使用igraph函数,一旦你熟悉了它们,就将它应用到你的自定义图形中。这里有一个演示:

 library(igraph)
 g <- graph.ring(10)
 V(g)
Vertex sequence:
 [1]  1  2  3  4  5  6  7  8  9 10

现在我尝试删除现有的顶点:

delete.vertices(g, c(2,7,9) )
IGRAPH U--- 7 4 -- Ring graph
+ attr: name (g/c), mutual (g/x), circular (g/x)

对于不存在的,我得到你的错误:

delete.vertices(g, c(20))

Error in delete.vertices(g, c(20)) : 
  At iterators.c:759 : Cannot create iterator, invalid vertex id, Invalid vertex id
于 2013-02-27T09:03:14.927 回答
1

你在用 igraph 吗?

read.graph 函数可能会将顶点 ID 作为字符串读取。在这种情况下,您可能想要:

delete.vertices(graph,c('717527','61373'))

反而。此外,delete.verticies 返回一个新的图形对象。如果您希望稍后显示更改,您需要确保将结果存储在图表中。

graph<-read.graph(paste0("H:/graph.txt"),format="ncol",directed="TRUE")
graph<-delete.vertices(graph,c('717527','61373'))
于 2015-06-20T04:38:22.667 回答