【问题标题】:adding edges and vertices without duplication in igraph (R)在 igraph (R) 中添加边和顶点而不重复
【发布时间】:2015-01-06 21:22:38
【问题描述】:

尝试创建一个空图并添加边和顶点。

library(igraph)
g<-graph(edges =,NULL,n=NULL,directed =FALSE)
g=g+vertices("5","6")
g=g+edge("5","6")

However when I try to do
g=g+vertices("5")

它复制了节点“5”。

如何保持节点和顶点的唯一性。 所以 g=g+vertices("5") 不会添加任何东西。

【问题讨论】:

    标签: r igraph


    【解决方案1】:

    我认为igraph 中没有一些内置函数,但是您可以轻松创建一个来代替g + vertices(...) 使用:

    addVertIfNotPresent <- function(g, ...){
      names2add <- setdiff(list(...),V(g)$name)
      v2add <- do.call(vertices,names2add)
      g <- g + v2add
    }
    

    示例用法:

    library(igraph)
    
    g <- graph(edges=NULL,n=NULL,directed=FALSE)
    g = addVertIfNotPresent(g,"5","6")
    g = g + edge("5","6")
    
    # "5","6" won't be added and "7" will be added just once
    g=addVertIfNotPresent(g,"5","6","7","7") 
    
    plot(g)
    

    【讨论】:

      最近更新 更多