Soma dos valores mais recentes entre os grupos

Para cada linha dos meus dados, gostaria de calcular a soma das mais recentesvalue para cadagroup:

dt = data.table(group = c('a','b','a','a','b','a'),
                value = c(10, 5, 20, 15, 15, 10),
                desired = c(10, 15, 25, 20, 30, 25))
#   group value desired
#1:     a    10      10
#2:     b     5      15
#3:     a    20      25  # latest value of a is 20, of b is 5
#4:     a    15      20  # latest value of a is 15, of b is 5
#5:     b    15      30
#6:     a    10      25

desired coluna é o que eu quero alcançar, e posso fazer isso com um loop ingênuo, mas meus dados são bastante grandes com muitas linhas e grupos (1 milhão de linhas, mais de 1000 grupos).

for (i in seq_len(nrow(dt))) {
  # can use `set` to make this faster, but still too slow
  # this is just to illustrate *a* solution
  dt[i, desired1 := dt[1:i, value[.N], by = group][, sum(V1)]]
}

questionAnswers(3)

yourAnswerToTheQuestion