簡體   English   中英

節點屬性csv圖

[英]node attribute csv igraph

我有大量從Excel導出的csv格式的鄰接矩陣。 我也有大量的csv。 具有頂點屬性數據的文件。 我已經在SNA中鏈接了它們,但是igraph在功能上走得更遠,因此我希望繼續使用它,但無法構建graph + attribute文件。

我正在尋找設置一些代碼,這些代碼將成為進行一系列繪圖的主要工具。 盡管似乎有很多方法可以鏈接這兩個數據集,但這似乎是最簡單的:為了使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

我收到不同的錯誤消息:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM