r - 来自数据框的加权图

标签 r igraph weighted-graph

我有一个边缘列表,我想将其转换为加权图。我使用了以下代码:

edgelist <- read.table(text = "
V1 v2 weights
A B 1
B C 8
C D 6
D E 9
C F 12
F G 15",header=T)


g<-graph_from_data_frame(edgelist)
g

它使权重成为边的属性。但是,当我想检查它是否加权时,意味着:
is_weighted(g)

它返回给我 FALSE 。如何将其更改为 TRUE

最佳答案

你很亲近。如果您使用 is_weighted 阅读文档,您可以阅读以下内容:

In igraph edge weights are represented via an edge attribute, called ‘weight’



现在,如果我们将权重列的名称更改为权重,它将起作用。
edgelist <- read.table(text = "
V1 v2 weight
                       A B 1
                       B C 8
                       C D 6
                       D E 9
                       C F 12
                       F G 15",header=T)
g <- graph_from_data_frame(edgelist)
is_weighted(g)
[1] TRUE

如果由于某种原因你不能重命名你的列,你可以像这样手动设置权重:
# based on the weights column if you can't rename input data.frame
g <- set_edge_attr(g, "weight", value= edgelist$weights)
is_weighted(g)
[1] TRUE

关于r - 来自数据框的加权图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51856706/

相关文章:

python - networkx 是否具有计算权重的路径长度的功能?

machine-learning - 如何找到加权图中链接的预测权重的概率

r - 您如何处理包内部的 R 数据?

r - 如何知道R中栅格中某个值出现的百分比?

r - 通过 RStudio 使用 XeLaTeX fontspec 包时,knitr 缓存失败

python igraph : nodes and edges color according to a number associated to the node

r - 为什么 data.table 会通过引用更新名称(DT),即使我分配给另一个变量?

r - 在图形上将所有节点连接在一起

r - 使用 R igraph 根据权重绘制边缘

java - 室友匹配算法