【问题标题】:Import weighted edgelist using igraph使用 igraph 导入加权边缘列表
【发布时间】:2012-10-13 15:16:50
【问题描述】:
我有以下 txt 文件,以 edgelist 格式表示网络。
前两列代表通常:哪个节点连接到其他节点
第三列代表权重,代表每个节点联系对方的次数。
我搜索了igraph 文档,但没有提到在导入 txt 等标准文件格式时如何包含权重参数。
可以从here 访问该文件,这是我一直在使用的代码:
read.graph("Irvine/OClinks_w.txt", format="edgelist")
此代码将第三列视为重量以外的其他内容。
有人知道解决办法吗?
【问题讨论】:
标签:
python
r
igraph
edge-list
【解决方案1】:
以下是否会造成过多的烦恼?
g <- read.table("Irvine/OClinks_w.txt")
g <- graph.data.frame(g)
如果确实如此,则直接从您可以使用的文件中使用
g<-read.graph("Irvine/OClinks_w.txt",format="ncol")
E(g)$weight
【解决方案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"])