Спасибо! Это работает - я сейчас работаю, чтобы реализовать это на объекте igraph с несколькими узлами, которые представляют

я естьigraph объектg сделано из кадра данныхdf:

df <- data.frame(c(0,1,2,2,4), c(1,2,3,4,5), c(0.01, 0.03, 0.05, 0.01, 0.02))
colnames(df) <- c('parent_id', 'id', 'dt')
g <- graph_from_data_frame(df)

Края сделаны междуparent_id а такжеid.

> g
IGRAPH DN-- 6 5 -- 
+ attr: name (v/c), dt (e/n)
+ edges (vertex names):
[1] 0->1 1->2 2->3 2->4 4->5

Изменение толщиныdt это атрибут ребра. Это можно рассматривать как изменение толщины айсберга «родителя» и «ребенка» (это моя проблема / проект).

list.edge.attributes(g)
[1] "dt"

визуализировать:

plot(g, edge.label=E(g)$dt)

Пример узлов и атрибута ребра'dt'

Мне нужно найти совокупную суммуdt в каждом узле при спуске от родителя к потомку.

Если думать в терминах «предка», «родителя» и «потомка», это эквивалентно получению совокупной суммыdt для всех предков в каждом «дочернем» узле.

кумулятивныйdt назначен как атрибут ребра, пример ожидаемого результата

Это нормально, если эти совокупные значения назначены в качестве новых атрибутов узла или ребра или другой формы вывода.

Я пробовал 1)network.aggregate функция вRNewsflow пакет и 2)aggregate функция вdata.tree пакет.

Заранее благодарю за интерес и помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос