使用igraph导入加权边缘列表

时间:2012-10-13 15:16:50

标签: python igraph

我有以下txt文件表示边缘列表格式的网络。

前两列代表通常的:哪个节点连接到哪个其他节点

第三列表示权重,表示每个节点与另一个节点联系的次数。

我搜索了igraph文档,但没有提到在导入标准文件格式(如txt)时如何包含权重参数。

可以从here访问该文件,这是我一直在使用的代码:

read.graph("Irvine/OClinks_w.txt", format="edgelist")

此代码将第三列视为权重以外的其他内容。

有谁知道解决方案?

2 个答案:

答案 0 :(得分:10)

以下是否会引起太多烦恼?

g <- read.table("Irvine/OClinks_w.txt")
g <- graph.data.frame(g)

如果它直接来自文件你可以使用

g<-read.graph("Irvine/OClinks_w.txt",format="ncol")
E(g)$weight

答案 1 :(得分:2)

如果您使用的是Python和igraph,则以下代码行可用于导入权重和顶点名称:

g1w=Graph.Read_Ncol("g1_ncol_format_weighted.txt",names=True)

注意:您必须告诉igraph使用names=True读取名称属性,否则只会导入顶点数字。

其中g1_ncol_format_weighted.txt类似于:

A B 2
B C 3

要确保导入正常,请使用以下行:

print(g1w.get_edgelist())
print(g1w.es["weight"])
print(g1w.vs["name"])