r - 匹配 2 个图中的边

标签 r igraph

我有 2 个图,我们称它们为 g1 和 g2。图 g2 与 g1 具有相同的结构,但包含 g1 中不存在的新边。我必须找到这些边缘。

g1 <- graph(edges=c(1,2,2,3,1,3,3,4,2,4,1,5), n=5, directed=FALSE)
g2 <- graph(edges=c(1,2,2,3,1,3,3,4,2,4,1,5,3,5), n=5, directed=FALSE)

在本例中,我要寻找的是边缘 3--5。

到目前为止,我想到使用 g1 的补集,然后将其与 g2 的边进行匹配以找到这些新边。问题是我在语法上遇到了问题。 (R 新手)

g1_complement <- complementer(g1)

现在我只想获取 g2 中但不在 g1 中的新边。我正在考虑这样做。

E(g1_complement)[E(g1_complement) %in% E(g2)]

我原本期望只获得新的边,但这会返回所有 g1_complement 边。我只使用 igraph 作为库。

最佳答案

请使用 igraph 库中的 difference() 函数找到以下一种可能的解决方案。

Reprex

library(igraph)

g1 <- graph(edges=c(1,2,2,3,1,3,3,4,2,4,1,5), n=5, directed=FALSE)
g2 <- graph(edges=c(1,2,2,3,1,3,3,4,2,4,1,5,3,5), n=5, directed=FALSE)


difference(g2, g1)
#> IGRAPH 9fb5e8c U--- 5 1 -- 
#> + edge from 9fb5e8c:
#> [1] 3--5

reprex package 于 2022 年 1 月 30 日创建(v2.0.1)

关于r - 匹配 2 个图中的边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70915128/

相关文章:

r - 如何在 .rmd 文件中获取部分名称?

r - 使用 `ggplot2` 使用另一条具有相同位置但在 `geom_curve` 中剪切开头和结尾的曲线来重叠曲线

r - 通过R中的行字符串值更改列值

r - 在 R 中展平嵌套 JSON

r - 如何用 R 绘制相配性?

r - 二分图匹配以匹配两个集合

r - 如何增加 colorramppalette 中的颜色强度

r - igraph从-到值(value)获取优势

R:返回所有简单路径的边列表

r - 在 R 中设置检测到的社区的大小