У меня есть набор данных, который состоит из известного объема с течением времени с максимальной и минимальной скоростью изменения, агрегированной за предыдущие периоды.Столбец max_RelChange
- это относительное изменение совокупного максимума для каждого дня независимо от года.Здесь был добавлен столбец для расчета будущих значений, но это не обязательно то, что я хочу сообщить.
>head(arrange( set3[,c(1,7,10,17, 19)], desc(EFFECTIVE_DATE)))
EFFECTIVE_DATE STD_INVENTORY_VOLUME Vintage max_RelChange max_forecast
1 2019-03-25 09:00:00 NA Predicted 0.000592 NA
2 2019-03-24 09:00:00 NA Predicted 0.00186 NA
3 2019-03-23 09:00:00 NA Predicted 0.00251 NA
4 2019-03-22 09:00:00 NA Predicted 0.00307 NA
5 2019-03-21 09:00:00 NA Predicted 0.00262 NA
6 2019-03-20 09:00:00 NA Predicted 0.00216 NA
График данных для иллюстрации
Прогнозируемое значение будет определено в том месте, где заканчивается красная линия, и изменится на основе последнего значения STD_INVENTORY_VOLUME
иmax_RelChange
, который обозначает, как значение должно измениться.
Столбец будет рассчитываться строка за строкой, используя что-то похожее на уравнение ниже.
lag(set3$STD_INVENTORY_VOLUME ,1) * set3$max_RelChange + lag(set3$STD_INVENTORY_VOLUME , 1)
У меня есть набор данных с будущими датами, а винтаж обозначает, что значение является прогнозируемым.В настоящее время будущие объемы NULL.Я полагаю, вам нужно настроить функцию и выполнить итерацию по строкам, чтобы у вас было предыдущее значение для работы, но вы не можете получить работающий синтаксис.Любая помощь будет принята с благодарностью!