我有以下 txt 文件,以 edgelist 格式表示网络。
前两列代表通常情况:哪个节点连接到其他哪些节点
第三列代表权重,代表每个节点联系对方的次数。
我已经搜索了igraph
文档,但没有提到在导入 txt 等标准文件格式时如何包含权重参数。
该文件可以从这里访问,这是我一直在使用的代码:
read.graph("Irvine/OClinks_w.txt", format="edgelist")
此代码将第三列视为重量以外的其他内容。
有谁知道解决方案?
以下是否会引起过多的烦恼?
g <- read.table("Irvine/OClinks_w.txt")
g <- graph.data.frame(g)
如果确实如此,则可以直接从文件中使用
g<-read.graph("Irvine/OClinks_w.txt",format="ncol")
E(g)$weight
如果您使用 Python 和 igraph,则以下代码行用于导入权重和顶点名称:
g1w=Graph.Read_Ncol("g1_ncol_format_weighted.txt",names=True)
注意:你必须告诉 igraph 读取 names 属性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"])