【发布时间】:2019-04-16 12:32:21
【问题描述】:
新手问题。我有一个数据集,用于计算一些会计价值。数据集如下所示
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 ......
...
请忽略表格中的实际值。我现在拥有的是每个 ID 的第一行。我需要为每个 ID 组创建一个循环,以便从第 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)
)
【问题讨论】:
-
See here 提出一个人们可以帮助解决的 R 问题。这包括我们可以使用的数据样本、所有必要的代码,以及对您正在尝试做什么和什么没有奏效的清晰说明。
-
道歉。问题已更新。
-
这仍然不是我们可以使用的数据
-
好的。更新。希望这是适合数据的格式。