【问题标题】:R: Extract connected graphsR:提取连通图
【发布时间】:2015-04-29 09:16:45
【问题描述】:

我有一个由约 300 个节点组成的无向图。该图由多个连通图组成(下面的示例是由 5 个连通图组成的无向图)。使用 R,我如何提取每个连接的子图,以及它们的节点和边数。我的图表由两列 data.frame 表示:

node1 node2
node1 node3
node2 node5
...  

使用下面的示例,预期结果将是

Subgraph NodeCount EdgeCount
1        2         1
2        4         3
3        2         1
4        2         1
5        2         1

谢谢

【问题讨论】:

    标签: r graph


    【解决方案1】:

    你可以这样做:

    library(igraph)
    set.seed(1)
    g <- simplify(graph.compose(graph.ring(10), graph.star(5, mode = "undirected"))) + edge("7", "8")
    dg <- decompose.graph(g)
    t(sapply(seq_along(dg), function(x) c(Subgraph = x, NodeCount = vcount(dg[[x]]), EdgeCount = ecount(dg[[x]]))))
    #      Subgraph NodeCount EdgeCount
    # [1,]        1         7        12
    # [2,]        2         2         1
    # [3,]        3         1         0
    

    示例图如下所示 (plot(g)):

    【讨论】:

    • 好的,谢谢。我从不使用 iGraph 包,有什么想法可以使用两列 data.frame 创建图表吗?谢谢
    • 当然,请参阅?igraph::graph.data.frame
    猜你喜欢
    • 2015-08-31
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多