【问题标题】:neighbors function in igraph package in RR中igraph包中的邻居函数
【发布时间】:2015-03-17 09:57:52
【问题描述】:

首先我想说我已经阅读了问题的答案:“R“igraph”包邻居函数的问题”,我试图解决我的问题,但我不能。我试图将我的问题作为后续评论提出,但由于声誉低下,我无法提出,因此我提出了这个新问题。现在这是我的问题: 我对邻居功能有同样的问题,因为它已在以下内容中解释过: "igraph” package neighbor function 但是当我尝试Gabor Csardi 给出的解决方案时,我刚刚收到 null 作为结果。我在这里也附上了我的那部分代码。我会非常感谢任何帮助和回答。 我的桌子:

edgelist <- read.table(text = "
1 2
2 3
3 4
4 5
3 6
6 7")
library(igraph)
graph <- graph.data.frame(edgelist)

str(graph)
## IGRAPH DN-- 7 6 -- 
## + attr: name (v/c)
## + edges (vertex names):
## [1] 1->2 2->3 3->4 4->5 3->6 6->7

现在如果我想要节点 3 的邻居,它应该是

2, 4, 6

但我得到的结果是:

2, 4, 5

我注意到它改变了我的节点顺序。正如我在尝试在堆栈溢出中找到的解决方案之前解释的那样,但结果为 null:

graph$name[neighbors(graph, 3)]
   NULL

我不知道我还能做什么, 我将不胜感激。

【问题讨论】:

    标签: r graph igraph neighbours


    【解决方案1】:

    在我们开始之前,您应该小心不要混淆给定顶点的标签/名称和索引/编号。当您将这两个数字用于标签和索引时,事情很快就会变得混乱。为了避免混淆,我在这里使用了字母

    edgelist <- read.table(text = "
    A B
    B C
    C D
    D E
    C F
    F G")  
    
    library(igraph)
    graph <- graph.data.frame(edgelist)
    str(graph)
    #IGRAPH DN-- 7 6 -- 
    # + attr: name (v/c)
    # + edges (vertex names):
    # [1] A->B B->C C->D D->E C->F F->G
    

    要查看正在处理的内容,我们绘制它:

    plot(graph)
    

    要获取邻居的索引,请执行以下操作: (记住有一个mode 参数)

    neighbors(graph, 3, mode = "total")  # Index of neighbours by index
    ## [1] 2 4 5
    neighbors(graph, "C", mode = "total")  # Index of neighbours by label
    ## [1] 2 4 5
    

    要执行 Gabor 建议的操作,您需要执行以下操作。 (我认为他错过了V( ),并在他的帖子中写了graph$name,而他的意思是V(graph)$name

    # Label of neighbours by label
    V(graph)$name[neighbors(graph, "C", mode = "total")]
    ## [1] "B" "D" "F"
    

    这给出了相应“邻居”的标签。 与图片相符。

    编辑糟糕。我搞砸了。使用E() 而不是V()。它似乎按预期工作。对不起。

    【讨论】:

      【解决方案2】:

      或者,您可以使用 which 为您提供所需的索引:

      neighbors(g,which(V(g)$name %in% 'A'),mode='in')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多