【问题标题】:Creating new edge list based on common vertices from bipartite network edge list根据二分网络边列表中的公共顶点创建新边列表
【发布时间】:2021-02-02 07:00:50
【问题描述】:

我有两组节点的边缘列表,如下所示:

edgelist <- data.frame(from = sample(letters, 1000, replace = T), 
                       to = sample(1:50, 1000, replace = T))

我需要做的是根据节点的公共边分别为节点上的每个集合生成一个图。例如,如果在“a”和“g”中都找到边列表中的“48”,我希望在字母加权图中有一个“a-g”边......数字图也是如此。如果您帮助创建边列表或图表,我将不胜感激。

【问题讨论】:

    标签: r graph-theory edge-list


    【解决方案1】:

    首先,请注意,您可能希望将示例 edgelist 包装到 unique() 调用中以避免重复边。

    如果我理解得很好,您可以通过简单的自联接来解决您的问题(尽管igraph 中可能有一种更有效的开箱即用方法)。例如,使用dplyr:

    library(dplyr)
    
    letters_edges <- edgelist %>%
      left_join(edgelist, by = "to") %>%
      select(from.x, from.y) %>%
      unique %>%
      filter(from.x < from.y)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 1970-01-01
      • 2021-04-13
      • 1970-01-01
      • 2023-02-16
      • 1970-01-01
      相关资源
      最近更新 更多