【问题标题】:How to delete vertices in graph in R?如何删除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 是我的顶点数。

这是图表:

我该怎么做?

【问题讨论】:

    标签: r social-networking igraph


    【解决方案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'))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-04
        • 2013-11-28
        • 1970-01-01
        • 1970-01-01
        • 2020-06-11
        • 2015-09-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多