如何在R语言中删除图形中的顶点?

4

我正在尝试使用delete.vertices(graph, vertex id)在图中删除顶点,但是我看到了这个错误:"Cannot create iterator, Invalid vertex id, Invalid vertex id"

这是我的代码:

graph<-read.graph(paste0("H:/graph.txt"),format="ncol",directed="TRUE")
delete.vertices(graph,c(717527,61373))

717527和61373是我的顶点编号。

这是图示:

vertices

我该怎么做?

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

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'))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接