一个系列的总和

数据挖掘 r
2022-03-05 16:05:08

我一直在尝试找到由Σ(1+r(i))^1:nin R whereinis in定义的系列的总和(1:N)两者in长度相同。解决方案需要是两个函数,其中function 1计算表达式(1+r)^n,第二个function 2递归调用function 1计算总和。我正在努力创建一种function 1在内部调用function 2并让它递归计算值的方法。

例子:

Rates   Tenor   Printrest  
1.20%   1   1.012  
1.35%   2   1.02718225  
1.90%   3   1.058089859  
2.01%   4   1.082856706  
1.80%   5   1.093298847  
1.70%   6   1.106434521  

回答 6.379862183

1个回答

我认为withincumsum功能可以解决您的问题。列中的最后一行comp.acc有你想要的。

> data.txt <- 'Rates   Tenor   Printrest  
+ 1.20   1   1.012  
+ 1.35   2   1.02718225  
+ 1.90   3   1.058089859  
+ 2.01   4   1.082856706  
+ 1.80   5   1.093298847  
+ 1.70   6   1.106434521'
> 
> df <- read.table(text=data.txt, header = TRUE)
> 
> within(df, {
+   comp <- (1 + Rates/100)^(Tenor)
+   comp.acc <- cumsum(comp)
+ })
  Rates Tenor Printrest comp.acc     comp
1  1.20     1  1.012000 1.012000 1.012000
2  1.35     2  1.027182 2.039182 1.027182
3  1.90     3  1.058090 3.097272 1.058090
4  2.01     4  1.082857 4.180129 1.082857
5  1.80     5  1.093299 5.273428 1.093299
6  1.70     6  1.106435 6.379862 1.106435