我需要建立一个基本的资产负债表,其中1)最终余额是初始余额加现金流量,2)初始余额等于以前的最终余额。以下代码工作正常:
init_balance <- c(0,0,0,0)
cash_flow <- 1:4
final_balance <- c(0,0,0,0)
n <- length (final_balance)
for (i in 1:n) {
final_balance[i] <- init_balance[i] + cash_flow[i]
if(i < n) {
init_balance[i+1] <- final_balance[i]
}
}
> init_balance
[1] 0 1 3 6
> cash_flow
[1] 1 2 3 4
> final_balance
[1] 1 3 6 10然而,这个实现使用for循环,听起来不像R。我发现的所有金融套餐都与财务分析有关,而不是金融建模。
有人会为这种建模提出另一种方法或方案吗?
谢谢。
发布于 2019-03-21 14:09:12
基本的this方式可能是这样的。
finance <- data.frame(cash.flow=1:4)
within(finance, {
final.balance <- cumsum(cash.flow)
init.balance <- final.balance - cash.flow
})
# cash.flow init.balance final.balance
# 1 1 0 1
# 2 2 1 3
# 3 3 3 6
# 4 4 6 10不同的是,这个解(和另一个答案的解)同时用整个向量计算,而不是用每一个值计算,这可以被称为"R-ish“。
https://stackoverflow.com/questions/55280773
复制相似问题