【问题标题】:delete_vertices igraph in RR中的delete_vertices igraph
【发布时间】:2021-07-22 02:19:17
【问题描述】:

我需要从图中删除节点数最多的组。我尝试使用 delete_vertices(name_of_graph, nodes_to_remove),但如何指示要删除的节点? 前任。我有 5 个组,分别有 6、19、27、11 和 18 个节点。所以我需要删除27个节点的组,我该怎么做呢?

【问题讨论】:

    标签: r nodes igraph


    【解决方案1】:

    你可以使用delete.vertices()函数,你给图的名字和你要删除的节点的名字。

    set.seed(666)
    require(igraph)
    net  = data.frame(
    Node.1 = sample(LETTERS[1:15], 15, replace = TRUE),
    Node.2 = sample(LETTERS[1:10], 15, replace = TRUE))
    
    g <- igraph::graph_from_data_frame(net, directed = FALSE )
    plot(g)
    g = delete.vertices(g, V(g)$name == "N")
    plot(g)
    
    

    【讨论】:

      【解决方案2】:

      您可以尝试下面的代码,使用components 标记组并找到具有最多顶点数的组。然后您使用subset 过滤掉这些顶点并应用delete.vertices 将它们删除。

      delete.vertices(
        g,
        subset(
          V(g),
          with(components(g), membership == which.max(csize))
        )
      )
      

      示例

      g1 <- make_ring(5)
      g2 <- make_ring(3)
      g3 <- make_ring(7)
      g4 <- make_ring(4)
      
      g <- disjoint_union(g1, g2, g3, g4)
      
      plot(g)
      

      运行后

      g.out <- delete.vertices(
        g,
        subset(
          V(g),
          with(components(g), membership == which.max(csize))
        )
      )
      
      plot(g.out)
      

      你会看到

      【讨论】:

        猜你喜欢
        • 2011-08-08
        • 2017-10-25
        • 1970-01-01
        • 2015-07-21
        • 1970-01-01
        • 2013-01-21
        • 2017-10-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多