我有以下txt文件表示边缘列表格式的网络。
前两列代表通常的:哪个节点连接到哪个其他节点
第三列表示权重,表示每个节点与另一个节点联系的次数。
我搜索了igraph
文档,但没有提到在导入标准文件格式(如txt)时如何包含权重参数。
可以从here访问该文件,这是我一直在使用的代码:
read.graph("Irvine/OClinks_w.txt", format="edgelist")
此代码将第三列视为权重以外的其他内容。
有谁知道解决方案?
答案 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"])