来自数据框的加权图
weighted graph from a data frame
我有一个边缘列表,我想将其转换为加权图。我使用了以下代码:
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)
它returns我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
我有一个边缘列表,我想将其转换为加权图。我使用了以下代码:
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)
它returns我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