如何解决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 举报,一经查实,本站将立刻删除。