次のタイプの大きなベクトルがあります。
myvec <- c(1,2,3,5, 0,1,2,5,8, 0,1,3, 0,2,3,8, 0,3,5)
グループに対応するベクトルは次のとおりです。
grp <- c(rep(1, 4), rep(2, 5), rep(3,3), rep(4, 4), rep(5, 3))
連続するグループの最後の数が 2 番目のグループに 2 を加えた距離に追加されるように (ギャップを作成するために) 数を追加する必要があります。次に、2 番目のグループの最後の数が 3 番目の膿に追加され、ギャップが作成されます。
したがって、新しいベクトルは次のようになります
myvecnew <- c(1, 2, 3 ,5, # maximum 5 + 2 applied in group 2
5+0+2 = 7, 5+1+2 = 8, 5+2+2 = 9, 5+5+2 = 12, 8+5+2 = 15, # maximum 15 + 2 applied in group 3
0+15+2 = 17, 1+15+2 = 18, 3+15+2 = 20, # maximum 20 + 2 applied to group 4
0 + 20 + 2 = 22,..........and so on)
したがって、グループ 1 と 2 の max(value) がすべてのグループ 2 の値に追加され、グループ 2 の結果の新しい最大値がグループ 3 と定数 2 に追加され、すべてのグループがカバーされるまで続ける必要があります。これはどのように達成できますか?.........