Это довольно специфическая задача. Допустим, у меня есть эта таблица, подумайте о типичной банковской базе данных (кстати, работающей с data.table):
customer_id; month; balance
1;1;100
1;2;110
1;3;140
1;4;70
Мне нужен скрипт или функция, которая возвращает для каждой строки соотношение относительномаксимальный исторический баланс для каждого клиента.
customer_id; month; balance; ratio
1;1;100;1 # 1 because 100 balance is both the current datapoint and the max value so far
1;2;110;1.1 # 1.1 because 110 balance is 1.1 of the prior max value, 100
1;3;140;1.27 # 1.27 because it's 140 divided by the prior max value, 110
1;4;70;0.5 # 0.5 because it's 70 divided by the prior max value, 140
Я знаю, что некоторые методы dplyr или data.table могут работать с кумулятивными вычислениями, такими как cumsum. Однако у этого есть поворот, который я не могу найти в Интернете.
Спасибо.