如何删除R中图形中的顶点?
Posted
技术标签:
【中文标题】如何删除R中图形中的顶点?【英文标题】:How to delete vertices in graph in R? 【发布时间】:2013-02-27 08:53:37 【问题描述】:我正在尝试使用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 是我的顶点数。
这是图表:
我该怎么做?
【问题讨论】:
【参考方案1】:您收到错误是因为给定的顶点之一不在图形顶点列表中。一个建议是尝试使用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
【讨论】:
【参考方案2】:你在使用 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'))
【讨论】:
以上是关于如何删除R中图形中的顶点?的主要内容,如果未能解决你的问题,请参考以下文章