【问题标题】:Cumsum function step wise in RR中的Cumsum函数逐步
【发布时间】:2021-07-11 22:01:59
【问题描述】:

我面临一个问题,我计算了抵押贷款的每月利率,但是,我需要将结果相加才能得到每年(总是12 个月)。

H <- 2000000 # mortgage
i.m <- 0.03/12 # rate per month
year <- 15 # years

a <- (H*i.m*(1+i.m)^(12*year))/
  ((1+i.m)^(12*year)-1)
a # monthly payment

interest <- a*(1-(1/(1+i.m)^(0:(year*12))))
interest

cumsum(a*(1-(1/(1+i.m)^(0:(year*12))))) # first 12 values together and then next 12 values + first values and ... (I want to have for every year a value)


【问题讨论】:

  • 您想对最后一个向量中的每 12 个值求和吗?然后是第一个 12 和第二个 12 的累积值?
  • 是的,每 12 个值合并为一个值,但是将此值添加到接下来的 12 个值中,直到向量的末尾。假设按 12 分组,然后是 cumsum 函数。
  • 我想知道到目前为止(累计)我每年支付的利率是多少。

标签: r


【解决方案1】:

您可以使用基础 R 中的 tapply 来执行此操作。

monthly <- cumsum(a*(1-(1/(1+i.m)^(0:(year*12)))))
yearly <- tapply(monthly, ceiling(seq_along(monthly)/12), sum)

【讨论】:

  • 总利息支付是 486093.9,但是你的输出是 ``` 4126619.994 4768157.923 5449466.732 486093.905 ```有超过一百万的数字只有最后一个值是正确的。
  • 我想知道到目前为止我每年为利率支付了多少。这是每月 cumsum(a*(1-(1/(1+i.m)^(0:(year*12))))) 并且我想知道每年的相同模式。 (就像在这个向量中保留每 12 个值)。谢谢你的帮助:)
  • @JaroslavKotrba 你的意思是monthly[seq(1, length(monthly), 12)] 吗?
  • 是的,就是这个,我要找的东西 :) 非常感谢 :)
【解决方案2】:

我认为您可以使用以下解决方案:

monthly <- cumsum(a*(1-(1/(1+i.m)^(0:(year*12)))))

sapply(split(monthly, ceiling(seq_along(monthly) / 12)), function(x) x[length(x)])

         1          2          3          4          5          6          7          8 
  2254.446   9334.668  21098.218  37406.855  58126.414  83126.695 112281.337 145467.712 
         9         10         11         12         13         14         15         16 
182566.812 223463.138 268044.605 316202.434 367831.057 422828.023 481093.905 486093.905 

【讨论】:

  • 它应该几乎是线性增长的,你的最终值是 30553936.402 这意味着最后我只需支付 200 万抵押贷款就可以支付 3000 万。
  • 也许我没有得到你想要的输出。我对12 的跨度的monthly 向量值求和,然后累积结果。你想让我做什么呢?
  • 我想知道到目前为止我每年为利率支付了多少。这是每月 cumsum(a*(1-(1/(1+i.m)^(0:(year*12))))) 并且我想知道每年的相同模式。 (就像在这个向量中保留每 12 个值)。谢谢你的帮助:)
  • 你知道如何从这个向量中取出每 12 个值吗?
  • 是的,就是这样,我正在寻找的东西 :) 非常感谢 :) 我会接受这两种解决方案 ;)
猜你喜欢
  • 1970-01-01
  • 2019-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
  • 2018-08-31
  • 1970-01-01
相关资源
最近更新 更多