我有一个加权和二分网络的数据集:
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
我想转换为图形对象,但我不知道该怎么做,我必须使用graph_from_adjacency_matrix
或graph_from_data_frame
?
有什么想法可以提供帮助吗?
答案 0 :(得分:2)
我认为你需要从graph_from_incidence_matrix
开始。假设您的数据位于名为df1
的数据框中,您的问题中包含列名和行名:
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