Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的iGraph——寻找满足给定边分数的邻域_R_Igraph - Fatal编程技术网

R中的iGraph——寻找满足给定边分数的邻域

R中的iGraph——寻找满足给定边分数的邻域,r,igraph,R,Igraph,是否有方法在邻域函数中应用限制: 仅获取通过给定边缘阈值连接的邻居?例如: 如果我想要边权重>=0.5的一阶邻居 我希望二阶中的所有邻居都与第一跳边权重==1和第二跳边权重==1相连 谢谢 如果我理解正确,那么您可以做的是将原始图子集,以限制权重 > library(igraph) > df <- data.frame( a = c("n1","n1","n1","n1","n2"), b = c("n2","n3","n4","n5","n3"),

是否有方法在邻域函数中应用限制:

仅获取通过给定边缘阈值连接的邻居?例如:

  • 如果我想要边权重>=0.5的一阶邻居
  • 我希望二阶中的所有邻居都与第一跳边权重==1和第二跳边权重==1相连

  • 谢谢

    如果我理解正确,那么您可以做的是将原始图子集,以限制权重

    > library(igraph)
    
    > df <- data.frame(
        a = c("n1","n1","n1","n1","n2"), 
        b = c("n2","n3","n4","n5","n3"), 
        w = c(-1,1,-1,1,-1))
    
    > g <- graph.data.frame(df, directed=FALSE)
    
    > plot(g, edge.label=E(g)$w)
    [img #1]
    
    # restrict graph to edges with value w being negative
    > subg <- graph.neighborhood(
        subgraph.edges(g, eids = which(E(g)$w < 0)), 
        order = 1)
    
    > subg
    [[1]]
    IGRAPH UN-- 3 2 -- 
    + attr: name (v/c), w (e/n)
    
    [[2]]
    IGRAPH UN-- 3 2 -- 
    + attr: name (v/c), w (e/n)
    
    [[3]]
    IGRAPH UN-- 2 1 -- 
    + attr: name (v/c), w (e/n)
    
    [[4]]
    IGRAPH UN-- 2 1 -- 
    + attr: name (v/c), w (e/n)
    
    > plot(subg[[1]], edge.label=E(subg[[1]])$w)
    [img #2]
    
    >库(igraph)
    >df g图(g,边缘标签=E(g)$w)
    [img#1]
    #将图形限制为值为负的边
    >subg subg
    [[1]]
    IGRAPH UN--3 2--
    +属性:名称(v/c),w(e/n)
    [[2]]
    IGRAPH UN--3 2--
    +属性:名称(v/c),w(e/n)
    [[3]]
    IGRAPH UN--2 1--
    +属性:名称(v/c),w(e/n)
    [[4]]
    IGRAPH UN--2 1--
    +属性:名称(v/c),w(e/n)
    >绘图(子G[[1]],edge.label=E(子G[[1]])$w)
    [img#2]
    

    我会接受这一点,但我正在寻找一种解决方案,以避免限制整个图形的边;我认为有一种更快的方法,通过递归节点的邻域(例如,对于二阶边)