【问题标题】:Using Edgelist to construct affiliation networks from a bipartite graph使用 Edgelist 从二分图构建隶属网络
【发布时间】:2017-02-16 16:40:54
【问题描述】:

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

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

ID1 是一类演员,ID2 是另一类演员。如何为参与者类(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)

提前致谢!

【问题讨论】:

  • 我不明白你在问什么。这里期望的输出是什么?图g需要怎么改?
  • 在这种当前形式中,我无法创建二分图,但我找不到分配值的解决方案(根据 igraph 文档,一类参与者需要分配值 TRUE,另一需要为列分配值 FALSE 以便将其检测为二分图)。我希望这能让它更清楚一点?

标签: r igraph


【解决方案1】:

您基本上只需要使用 data.frame 中的数据为顶点分配一个类型属性。例如

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

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

【讨论】:

    猜你喜欢
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 2018-07-06
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多