使用Edgelist从二分图构建联盟网络

时间:2017-02-16 16:40:55

标签: r igraph

我有一个代表二分网络的边缘列表。

ID1 ID2
  1 123
  1 124
  1 125
  2 123
  2 126
  3 127
  3 123
  3 130

ID1是一类演员,ID2是另一类演员。如何为actor类(ID1中的所有顶点作为一个类,ID2中的所有顶点作为另一个类)分配属性,以将其用于二分网络分析。另外,我想从二分图中提取联属网络作为两个单独的图并想要导出它们。

可以在此处找到重现数据框的代码

x<-as.data.frame(matrix(c(1,1,1,2,2,3,3,3,123,124,125,123,126,127,123,130),8,2))
colnames(x) <- c("ID1", "ID2")
g <- graph.data.frame(x, directed=F)

提前致谢!

1 个答案:

答案 0 :(得分:0)

您基本上只需要使用data.frame中的数据为顶点指定一个type属性。例如

is_bipartite(g)
# [1] FALSE
V(g)$type <- V(g)$name %in% x[["ID1"]]
is_bipartite(g)
# [1] TRUE

此代码使用顶点名称将第一列中的所有值设置为TRUE。