【发布时间】: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
【问题讨论】:
-
你能分享一些数据吗?使您的代码可重现。