【问题标题】:node attribute csv igraph节点属性 csv igraph
【发布时间】:2014-01-19 18:57:20
【问题描述】:

我有大量的邻接矩阵,从 excel 导出的 csv 格式。我也有大量的csv。具有顶点属性数据的文件。 我已经在 SNA 中链接了它们,但 igraph 在功能上更进一步,所以我希望转向它,但我无法构建图形+属性文件。

我希望设置一些代码,作为执行一系列绘图的主力。 尽管似乎有很多方法可以将这两个数据集联系起来,但这似乎是最简单的: 为了使 csv 中的邻接矩阵成为数据框(因缺少顶点数据而减少),我使用:

m <- read.table(header=TRUE, check.names=FALSE, textConnection("
      2 3 4 5 6 7 
    2 0 1 1 0 1 0 
    3 1 0 0 0 1 0 
    4 0 0 0 0 0 0 
    5 1 0 1 0 0 1 
    6 0 0 0 0 0 0 
    7 1 1 0 1 0 0 
"))

在原始文件中同时具有顶点名称和行名称的情况下,导入的属性文件具有顶点名称和与节点名称相对应的'row.names'。 Hex.ed[1,1]给出了m网络中第一个节点,即节点2的属性值:

Hex.ed <- read.table(header=TRUE, textConnection("
        HH    Emo  Extra   Aggr Consci    OTE
  2 3.3750 3.0000 3.0000 3.0000 3.0625 3.4375
  3 3.5625 2.9375 3.0625 3.0000 3.3125 3.6250
  4 3.2500 2.8750 3.7500 3.2500 3.8750 3.5000
  5 3.6875 3.1250 3.3750 3.5625 3.6250 3.3125
  6 3.3125 3.0000 3.3125 3.8750 3.2500 3.6875
  7 3.8125 3.2500 3.5625 2.8750 3.6875 3.4375
"))

g <- graph.data.frame(m, directed=TRUE, vertices=Hex.ed)

但是,我得到了错误:Error in graph.data.frame(m, directed = TRUE, vertices = Hex.ed) : Duplicate vertex names

【问题讨论】:

    标签: r csv attributes igraph


    【解决方案1】:

    我收到一条不同的错误消息:

    Error in graph.data.frame(m, directed = TRUE, vertices = Hex.ed) : 
      Some vertex names in edge list are not listed in vertex data frame
    

    但这是因为您没有运行问题中的示例,而是可能使用了您的完整数据集。

    无论如何,graph.data.frame 不使用邻接矩阵。来自http://igraph.sourceforge.net/doc/R/graph.data.frame.html 的文档:

    ... d 的前两列用作符号边列表,并且 附加列作为边缘属性。属性的名称是 取自列名。

    如果您关心阅读手册,您会在底部看到一个示例。

    如果你有邻接矩阵,那么可以使用graph.adjacency创建图,然后一一添加顶点属性:

    g <- graph.adjacency(as.matrix(m))
    for (i in seq_len(ncol(Hex.ed))) {
      g <- set.vertex.attribute(g, colnames(Hex.ed)[i], value=Hex.ed[,i])
    }
    g
    # IGRAPH DN-- 6 11 -- 
    # + attr: name (v/c), HH (v/n), Emo (v/n), Extra (v/n), Aggr (v/n),
    #   Consci (v/n), OTE (v/n)
    

    【讨论】:

    • 非常感谢 Gabor。我很乐意分享 csv 文件,这将使其可重现,但我不知道如何做到这一点。
    • 嗨,我正在努力让它在网站上重现,而且我还不够资深,无法发布图片,但我希望数据的格式清晰。
    • 我不确定这将如何重现,但希望你能看到足够多的东西来发现我的错误。感谢您的耐心等待。
    • 如果这还不够,我很乐意发送 csv。文件。
    • 我明白了。非常感谢。鉴于我和其他人可能有类似格式的网络和属性数据,您是否建议这是创建组合 igraph 文件的最直接方式?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多