使用igraph导入加权边列表

12
我有一个txt文件,表示edgelist格式的网络。文件的前两列通常代表节点与连接的其他节点。第三列表示权重,即每个节点彼此联系的次数。
我已经搜索了igraph文档,但没有提到如何在导入像txt这样的标准文件格式时包含权重参数。
文件可以从这里访问,以下是我一直在使用的代码:
read.graph("Irvine/OClinks_w.txt", format="edgelist")

这段代码将第三列视为权重以外的内容。

有人知道解决方案吗?

2个回答

14

以下操作会不会引起过多的烦恼?

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

如果是的话,那么你可以直接从文件中使用。

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

3
如果您正在使用Python和igraph,则以下代码行可用于导入权重和顶点名称:
g1w=Graph.Read_Ncol("g1_ncol_format_weighted.txt",names=True)

注意:必须使用 names=True 参数告诉igraph读取名称属性,否则只会导入顶点编号。
其中 g1_ncol_format_weighted.txt 文件大致如下:
A B 2
B C 3

为了确保导入成功,请使用以下代码行:
print(g1w.get_edgelist())
print(g1w.es["weight"])
print(g1w.vs["name"])

3
这是Python,海报使用的是R。 - Gabor Csardi
非常有帮助,因为我想要Python。谢谢。 - nealmcb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接