2016-04-25 144 views
2

我是R新手,很抱歉這樣簡單的問題,但我真的不知道我的問題在哪裏... 我正在嘗試構建網絡:在igraph中導入頂點屬性R

library(igraph) 
matrix_try <- read.csv2("~/Documents/RStudio/Cedges.csv", header = T , row.names = 1) 
nodes <- read.csv2("~/Documents/RStudio/Cnode.csv", header = TRUE) 

文件,你可以找到here

matrix_try <- as.matrix(matrix_try) 
net <- graph_from_adjacency_matrix(matrix_try, nodes, mode = "undirected", weighted = T) 

但是沒有頂點屬性(類型,抗議):

IGRAPH UNW- 28 48 -- 
+ attr: name (v/c), weight (e/n) 
+ edges (vertex names): 
    [1] BYT --Udar         BYT --Front.zmin        
    [3] BYT --Svoboda  (...) 

如何'找到'他們?

預先感謝您!

回答

1

您不能使用?graph_from_adjacency_matrix添加節點屬性,它們尚未添加,因此無法找到它們。

下載文件:

adj_mat <- read.csv("Cedges.csv", sep =";", row.names = 1) 
nodes <- read.csv("Cnode.csv", sep =";") 
net <- igraph::graph_from_adjacency_matrix(as.matrix(edges), mode = "undirected", weighted = T) 

然後,您可以使用內置的FUN set_vertex_attr像這樣

set_vertex_attr(net, "name", index = V(net), as.character(nodes$name)) 
set_vertex_attr(net, "protests", index = V(net), nodes$protests) 
set_vertex_attr(net, "type", index = V(net), as.factor(nodes$type)) 

在情節使用屬性

plot(net, vertex.color = V(net)$protests) 

net plot