Рассмотрим фрейм данных df
, где первые два столбца являются парами узлов и последовательные столбцы V1
, V2
, ..., Vn
представляют потоки между узлами (потенциально 0, что означает отсутствие края для этого столбцасети).Я хотел бы провести анализ степени, обнаружения сообщества и других сетевых показателей, используя потоки в качестве весов.
Затем проанализировать график относительно весов в V1
Я делаю:
# create graph and explore unweighted degrees with respect to V1
g <- graph.data.frame( df[df$V1!=0,] )
qplot(degree(g))
x <- 0:max(degree(g))
qplot(x,degree.distribution(g))
# set weights and explore weighted degrees using V1
E(g)$weights <- E(g)$V1
qplot(degree(g))
Выход из третьего qplot не отличается от первого.Что я делаю не так?
Обновление:
Итак, graph.strength
- это то, что я ищу, но graph.strength(g)
в моем случаевыдает стандартную степень, за которой следуют:
Warning message:
In graph.strength(g) :
At structural_properties.c:4928 :No edge weights for strength calculation,
normal degree
Я должен неправильно установить вес, не достаточно ли сделать E(g)$weights <- E(g)$V1
и почему g$weights
может отличаться от E(g)$weights
?