взвешенный график из фрейма данных

У меня есть список редакторов, который я хочу преобразовать в взвешенный график. Я использовал приведенный ниже код:

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?


person minoo    schedule 15.08.2018    source источник


Ответы (1)


Вы очень близки. Если вы читали документацию с is_weighted, вы можете прочитать следующее:

В графике веса ребер представлены с помощью атрибута ребра, который называется «вес».

Теперь, если мы изменим имя вашего столбца весов на вес, он будет работать.

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
person phiver    schedule 15.08.2018