r - 根据二分网络边列表中的公共顶点创建新边列表
问题描述
我有两组节点的边缘列表,如下所示:
edgelist <- data.frame(from = sample(letters, 1000, replace = T),
to = sample(1:50, 1000, replace = T))
我需要做的是根据节点的公共边分别为节点上的每个集合生成一个图。例如,如果在“a”和“g”中都找到边列表中的“48”,我想在字母加权图中有一个“ag”边......数字图也是如此。如果您帮助创建边缘列表或图表,我将不胜感激。
解决方案
首先,请注意您可能希望将示例包装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)
推荐阅读
- javascript - Angular 2/4 -- 将单选按钮 [value] 绑定到对象或函数时,为什么这个反应形式的值不更新?
- c++ - 在 gcc 中启用“不同级别的间接”警告/错误
- java - 用其他数组制作一个大数组,如果 FALSE 使它更小
- javascript - 更改为 JavaScript 文件后无法链接网站图标
- python - 我如何使用 Beautiful Soup 来解析击球手的名字?
- javascript - 从内容中删除特定标签并保留简码
- excel - 筛选筛选条件,然后在 Excel 中的 countif 语句中应用
- python - Pythonista 核心模块
- php - TCPDF中文字体检测
- c - 在终端(C 文件)中运行程序并且未运行到完成