私はさまざまな属性を持つエッジリスト(FromID/ToID)からなるデータフレームを持っています。チェーン内のすべてのノードの累積値の計算R
FromID ToID from_median degree since_0001 total_saved
0002 0001 10 1 30
0003 0001 20 1 40
0004 0002 10 2 70
0004 0003 10 2 70
0005 0003 33 2 112
0006 0004 26 3 129
0007 0004 14 3 148
0008 0005 22 3 150
0009 0005 14 3 157
0010 0007 15 4 178
0011 0007 28 4 184
0011 0008 28 4 184
0012 0008 12 4 188
0013 0011 30 5 220
0014 0012 12 5 207
df $ degreeは、最初のdf $ ToID(0001)からのdf $ FromIDの距離(度)です。
df $ total_savedは、チェーン内の各IDのdf $ from_median + df $ from_medianの値である必要があります。 FromID 0014は等しくなければならない99:0001 - > 0003 - > 0005 - > 0008 - > 0012 - > 0014 == 20 + 33 + 22 + 12 + Iが単に
df$total_saved <- df$from_median
とtotal_saved $ dfを移入12
その後、forelse()とベクトル化アプローチ(FromIDとTOIDを一致させるために%in%またはmatch()を使用する)forループのさまざまな組み合わせを試してみましたが、正しいdf $ total_saved値は2度までしか得られません。
どのような考えにも大変感謝しています。 多くのお礼ありがとうございます
FromIdが複製される場合はどうなりますか?たとえば0011の場合0011に進み、0007または0008に行く場合は? – User2321
重複しないようにしておくと、重複する必要はありません。 – pax10t