Вопрос новичка.У меня есть набор данных, который я использую для расчета некоторых учетных значений.Набор данных выглядит следующим образом
ID Period Amount Interest O_Bal C_Bal
1 1 1234 0.07 1234 (1234+(1234*0.07)) = 1321
1 2 1244 0.07 1321 (1321-1234+(1321*0.07))
1 3 .....
2 1 ......
...
Пожалуйста, игнорируйте фактические значения в таблице.На данный момент у меня есть первая строка для каждого идентификатора.Мне нужно создать цикл для каждой группы идентификаторов, чтобы начиная с периода 2 он вычислял итоговое сальдо по формуле во второй строке.Любые идеи?
Я пробовал следующее
fin_calc$C_Bal = fin_calc$O_Bal + (fin_calc$O_Bal*0.07)
if (fin_calc$Period==1) {
fin_calc$Cl_Bal = fin_calc$C_Bal
}
fin_c <- fin_calc %>%
group_by(ID) %>%
mutate(Cl_Bal = lag(Cl_Bal) - Amount_PA + (lag(Cl_Bal) - Amount_PA)*0.07)
Что он делает, это в состоянии продолжать с периода 1 до периода 2, но затем последующие периоды рассчитываются неправильно
Data <- data.frame(
ID = 1,
Period = c(1,2,3),
Amount_PA = c(0,2946737,3035139),
O_Bal = c(30979981.5,0,0),
C_Bal = c(33148580.2,0,0),
Cl_Bal = c(33148580.2,32221382.2,-3345026.6)
)