Основой является следующая таблица данных:
library(data.table)
dt <- data.table(Position = 1:3, Price = c(50, 45, 40), Volume = c(10, 10, 10))
dt
Position Price Volume
1: 1 50 10
2: 2 45 10
3: 3 40 10
Теперь я хотел бы рассчитать средневзвешенное значение для каждой позиции с учетом всех позиций "<="
текущей позиции. Результат должен быть:
dt[, Vwa := c(50, 47.5, 45)]
dt
Position Price Volume Vwa
1: 1 50 10 50.0
2: 2 45 10 47.5
3: 3 40 10 45.0
Любая идея, как сделать это эффективно?