【发布时间】:2013-10-14 12:20:55
【问题描述】:
我有一个 Graph G1,它有 50 个节点和 100 条边。所有边都被加权。我创建了一个边列表(按预定义的顺序排序,删除具有大值的特定边),它们的索引如下:
Edgelist: [75, 35, 32, 1, ...]
我想以 10 个批次将边添加到不同的图 G2(以节省计算时间),但 add.edges 似乎想要一个顶点对的元组列表。所以,
-
如何将上面的 Edge 列表转换为元组列表,例如[(40,2),(10,1),(10,11),(0,0),...]。我用 G1.es[edge].tuple 尝试了一个循环,但是 iGraph 将 [edge] 变量作为属性读取,而如果你只写 G1.es[75].tuple,它可以正常工作。
如何从 G1 中查找权重并将它们以 10 个为一组添加到 G2 中?
【问题讨论】:
-
“边缘列表”是否是指 G1 的边缘 ID 列表上方?
-
是的。我已经在我的解决方案下面发布了,但也许有一种方法可以加快速度?
-
我在下面发布了一个可能的实现作为答案。
-
谢谢 - 你有用于从边缘 id 生成元组的 R 实现吗?
-
在 R 中使用
get.edgelist()获取完整的边列表,然后简单地使用您感兴趣的边的 ID 索引列表。