微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R Igraph 错误:“权重向量必须为正,值无效”

如何解决R Igraph 错误:“权重向量必须为正,值无效”

我在 iGraph 中构建了多个图表。在每个图中,节点代表单词,边权重表示作为对单词 B 的响应(在单词关联任务中)给出单词 A 的次数。 0 和 1 使用以下代码

E(G)$weight <- E(G)$weight / max(E(G)$weight)

这些值在分析节点/网络强度时是合适的,但在计算与介数相关的函数时(例如调用介数函数,或使用基于介数的社区检测,它们需要更改为距离 - 即倒置:

: >
G2 = G
E(G2)$weight = 1 - E(G2)$weight

问题是这会导致向量包含几个 0(即那些在反转之前强度为 1 的向量。这导致(至少,我认为这是原因)在错误消息中,例如:

Error in cluster_edge_betweenness(G2.JHJ.strong,weights = E(G2.JHJ.strong)$weight,: 
  At community.c:455 : weights must be strictly positive,Invalid value

对此可以做些什么?

谢谢,

彼得

解决方法

如果您想安全一点,您可以尝试使用 sum 而不是 max 来标准化权重,例如,

E(G)$weight <- E(G)$weight / sum((E(G)$weight)

E(G)$weight <- 2**((E(G)$weight - min(E(G)$weight)) / diff(range(E(G)$weight)))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。