【问题标题】:Subset igraph graph by label按标签子集 igraph 图
【发布时间】:2013-03-29 06:32:50
【问题描述】:

我正在尝试通过边缘特征(如其标签)对 igraph 图进行子集化。在可重现的示例中,我无耻地从另一个帖子中窃取并稍作修改,我希望能够将最好的朋友关系 (BF) 与家庭关系 (FAM) 分开:

edges <- matrix(c(103, 86, 24, 103, 103, 2, 92, 103, 87, 103, 103, 101, 103, 44), ncol=2, byrow=T)
g <- graph(as.vector(t(edges)))
E(g)[c(2:4,7)]$label<-"FAM"
E(g)[c(1,5,6)]$label<-"BF"

到目前为止,我能做的最好的事情是显示具有一种领带类型的边缘:

E(g)[E(g)$label=="BF"]
V(g)[E(g)$label=="BF"]

【问题讨论】:

    标签: r igraph


    【解决方案1】:

    怎么样:

    gfam <- subgraph.edges(graph=g, eids=which(E(g)$label=="FAM"), delete.vertices = TRUE)
    gbf <- subgraph.edges(graph=g, eids=which(E(g)$label=="BF"), delete.vertices = TRUE)
    

    igraph/网络分析教程/无耻插件建议:http://sna.stanford.edu/rlabs.php

    【讨论】:

      【解决方案2】:

      我建议您阅读?V?E 以了解如何选择边和顶点。您的问题的一个非常紧凑且可读的解决方案是

      subgraph.edges(g, E(g)[label=="FAM"])
      subgraph.edges(g, E(g)[label=="BF"])
      

      如果顶点没有指定标签的入射边,这也会删除顶点。详情请见?subgraph.edges

      【讨论】:

        猜你喜欢
        • 2016-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-11
        • 2019-09-02
        • 2017-10-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多