【问题标题】: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"])
      

      【讨论】:

      • 这是 Python,海报使用的是 R。
      • 感谢您的澄清!
      • 非常有帮助,因为我想要 python。谢谢
      猜你喜欢
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 2014-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多