2017-03-27 2 views
0

J'ai un ensemble de données pour un réseau pondéré et bipartites:ensemble de données Convertir un objet graphique

A B C D P 
W 0 0 0 1 0 
Q 0 0 0 7 13 
E 0 0 0 16 1 
T 0 0 0 5 1 
U 0 1 0 23 1 
R 1 0 0 10 2 
M 0 0 1 13 4 
H 3 0 0 13 5 
L 0 0 0 3 3 

Je voulais convertir en un objet graphique mais je ne savais pas comment faire, je dois utiliser graph_from_adjacency_matrix ou graph_from_data_frame? Une idée d'aide?

Répondre

2

Je pense que vous devez commencer par graph_from_incidence_matrix. En supposant que vos données sont dans une trame de données nommée df1, avec la colonne et les noms de ligne comme dans votre question:

library(igraph) 
g <- graph_from_incidence_matrix(df1, weighted = TRUE) 

E(g) 
+ 21/21 edges (vertex names): 
[1] W--D Q--D Q--P E--D E--P T--D T--P U--B U--D U--P R--A R--D R--P M--C M--D M--P H--A H--D H--P 
[20] L--D L--P 

E(g)$weight 
[1] 1 7 13 16 1 5 1 1 23 1 1 10 2 1 13 4 3 13 5 3 3 
+0

apprécient vraiment et une question comment puis-je ajouter des noms de lignes et de colonnes à ce graphique? @neilfws – minoo

+0

Jetez un oeil à l'argument 'add.names' de' graph_from_incidence_matrix'. Par défaut, les noms de lignes et de colonnes de la trame de données sont ajoutés en tant que noms de vertex: 'V (g) $ name'. – neilfws