[英]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.