У меня фрейм данных, как показано ниже:
+-----+---------+-----+-----+-----------------+----------+----------+------------+
| ID | CURRENT | JAN | FEB | CURRENT_IN_2018 | JAN_2018 | FEB_2018 | UNITS_SWAP |
+-----+---------+-----+-----+-----------------+----------+----------+------------+
| 123 | 2 | 3 | 4 | 5 | 6 | 7 | 12 |
| 456 | 1 | 5 | 0 | 4 | 8 | 6 | 6 |
+-----+---------+-----+-----+-----------------+----------+----------+------------+
Я пытаюсь вычесть число в UNITS_SWAP
из CURRENT_IN_2018
, JAN_2018
и FEB_2018
последовательно, пока число в UNITS_SWAP не достигнет нуля. Также при этом добавьте количество вычтенных UNITS_SWAP
из каждой строки в соответствующие соответствующие строки, например, если 5 единиц вычтено из current_in_2018, затем добавьте 5 единиц в ТЕКУЩЕМ, так далее и так далее для ЯНВАРЯ и ФЕВРАЛЯ, чтобы конечный результат как под:
+-----+---------+-----+-----+-----------------+----------+----------+------------+
| ID | CURRENT | JAN | FEB | CURRENT_IN_2018 | JAN_2018 | FEB_2018 | UNITS_SWAP |
+-----+---------+-----+-----+-----------------+----------+----------+------------+
| 123 | 7 | 9 | 5 | 0 | 0 | 6 | 0 |
| 456 | 5 | 7 | 0 | 0 | 6 | 6 | 0 |
+-----+---------+-----+-----+-----------------+----------+----------+------------+
Скрипт для загрузки данных:
DF <- data.frame(ID = c(123,456),
CURRENT = c(2,1),
JAN = c(3,5),
FEB=c(4,0),
CURRENT_2018 = c(5,4),
JAN_2018 = c(6,8),
FEB_2018=c(7,6),
UNITS_SWAP =c(12,6))