【问题标题】:Bipartite projection not working in igraph二分投影在 igraph 中不起作用
【发布时间】:2019-08-21 13:50:24
【问题描述】:

我正在尝试使用igraph 获得二分图的投影。 我的二分网络有 9523 条边,其中 8313 条属于 FALSE 类型,1210 条属于 TRUE 类型——正如以下两个输出所证实的那样。

> length(V(bp_network))
[1] 9523
> table(V(bp_network)$type)

FALSE  TRUE 
 8313  1210 

但是,当我尝试使用投影它们时

pr_networks = bipartite_projection(bp_network, multiplicity = TRUE)

我收到以下错误:

Error in bipartite_projection(bp_network, multiplicity = TRUE) : 
  At structure_generators.c:86 : Invalid (negative) vertex id, Invalid vertex id

我尝试将顶点的类型从布尔值更改为字符。

> table(V(bp_network)$type)

   A    B 
1210 8313 

现在同样的代码给出了另一个错误:

Error in bipartite_projection(bp_network, multiplicity = TRUE) : 
  `NA' is not allowed in vertex types
In addition: Warning message:
In bipartite_projection(bp_network, multiplicity = TRUE) :
  vertex types converted to logical

会发生什么?

编辑:网络是从具有两列 Twitter 用户名的数据框创建的,每行对应一个关注关系。

> names(elite_following_df)
[1] "user"      "following"    
> nrow(elite_following_df)
[1] 267442
> bp_network = graph_from_edgelist(as.matrix(elite_following_df), directed = FALSE)
> V(bp_network)$type = ifelse(V(bp_network)$name %in% elite_following_df$following, TRUE, FALSE)
> length(E(bp_network))
[1] 267442

【问题讨论】:

  • 你能分享一些数据吗?使您的代码可重现。

标签: r igraph


【解决方案1】:

问题是其中一条边违反了二分属性。换句话说,本应为FALSE 类型的节点之一与另一个FALSE 节点有一条边。留下这个答案而不是删除问题,以防万一有人遇到同样的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 2013-04-06
    • 2021-06-29
    相关资源
    最近更新 更多