У меня есть фрейм данных с более чем 1 миллионом строк и несколькими столбцами.
Мне нужно выполнить группировку по первым трем столбцам (Month, Prod, Rate), а затем по четвертому новому столбцу Iнужно суммировать следующую операцию: добавить значение в текущей строке + добавить значение в предыдущем месяце (который может быть предыдущим, но я не могу подтвердить это из-за того, что мне нужно сделать несколько групп.
Я пробовал с этим:
Bdtest<- BDdata %>%
group_by(Month, PROD, Currency) %>%
arrange(Month) %>%
summarise(Value = Amount, lag(Amount2, default = 0))
Но я все еще не получаю желаемый результат.
В конце я хотел бы получить результат, подобный этому:
Month Prod Currency Value
1 Fix USD value = amount of this period + amount from previous period
1 Var USD x2
Может быть, хорошим решением могло бы стать объединение с двумя отдельными таблицами, и таким образом я мог бы объединиться, составив сумму, но могу ли я в одном движении сделать Группу по?
РЕДАКТИРОВАТЬ:
glimpse(bd5)
Observations: 1,843,645
Variables: 65
$ Rate <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", ...
$ Currency <chr> "998", "998", "998", "998", "998", "998", "998", "998", "998", "998", ...
$ Flow_Type <chr> "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", ...
$ BANDA_TEMP <chr> "01", "02", "02", "03", "03", "03", "04", "04", "05", "05", "05", "01"...
$ PeriodoLow <fct> 1M, 1M, 2M, 3M, 3M, 3M, 6M, 6M, 9M, 9M, 9M, 1M, 1M, 2M, 3M, 3M, 3M, 6M...
$ PeriodoHigh <fct> 2M, 2M, 3M, 6M, 6M, 6M, 9M, 9M, 1Y, 1Y, 1Y, 2M, 2M, 3M, 6M, 6M, 6M, 9M...
$ DaysProp_CapHigh <dbl> 329751.000, 5514.083, 0.000, 229447.533, 115113.678, 3725.489, 224284....
$ DaysProp_CapLow <dbl> 0.000, 325330.917, 331938.000, 103621.467, 219087.322, 331568.511, 112...
Как вы и просили, здесь я поместил больше данных о моей проблеме. Таким образом, у меня есть этот огромный Df, где мне нужно создать окончательную группировку по первым четвертым переменным + Период.
А потом, наконец, сделать сумму, чтобы получить Capчто будет: текущее значение «DaysProp_CapLow» + «DaysProp_CapHigh» от предыдущего месяца (или года).
В первый месяц будет просто: DaysProp_CapLow
Но со второго месяца будет:DaysProp_CapLow + DaysProp_CapHigh (с первого месяца)
Я пытался с лагом, но у меня проблемы с его объединением с группировкой и суммированием
Любая помощь будет оценена.Я пытаюсь сделать это сейчас присоединяясь к таблицам.