r - 合并两个图并在 R igraph 中添加边权重

标签 r igraph

我试图将两个具有相同节点的图组合起来,但新的图边权重是两个原始图的总和(但当然希望解决方案扩展到 N 个图):

g1 <- graph.empty(directed=FALSE) + vertices(letters[1:2])
g1 <- g1 + edge("a", "b")
E(g1)$weight <- 1

g2 <- graph.empty(directed=FALSE) + vertices(letters[1:2])
g2 <- g2 + edge("a", "b")

E(g2)$weight <- 2

g3 <- g1 %u% g2

E(g3)$weight_1 #this is 1
E(g3)$weight_2 #this is 2

但我希望 E(g3)$weight 为 3。

有没有比之后对边权重_1、_2、...求和更优雅的方法?类似于简化/收缩的东西?

最佳答案

只需添加weight_1weight_2。 igraph 目前没有办法组合来自多个图的顶点/边属性,除非手动。这通常不是一个大问题,因为它只是一行额外的代码(每个属性)。如果您想删除 _1_2 属性,则需要三行。所以你需要做的就是:

E(g3)$weight <- E(g3)$weight_1 + E(g3)$weight_2

并且有可能

g3 <- remove.edge.attribute(g3, "weight_1")
g3 <- remove.edge.attribute(g3, "weight_2")

我在 igraph 问题跟踪器中为此创建了一个问题,但不要指望很快就能解决它: https://github.com/igraph/igraph/issues/800

关于r - 合并两个图并在 R igraph 中添加边权重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27762359/

相关文章:

r - 如何在 Rmarkdown 中添加 `` `(纯文本)

r - 如何计算点之间的最近距离?

python - 用anaconda2 pip安装python-igraph,找不到C核心。 Linux Fedora 24

r - 选择 csv 文件的特定列包含 R 中的特定字母

r - 使用 Jupyter Notebook 时 R 内核中的 PCA 绘图

通过R中的符号链接(symbolic link)读取数据

c++ - 用于 igraph_vector_t 和 igraph_matrix_t 的 GDB pretty-print

c++ - 错误 : request for member ‘stor_begin’ in ‘v’ , 属于非类类型 ‘igraph_vector_t*’

r - 将igraph的社区检测与neo4j集成

r - ggplot2 在同一张 map 上以一种颜色绘制县边界,以另一种颜色绘制州边界