我有一个数据框,如下所示:
ref_inf <- c(2,3,1,2.2,1.3,1.5,1.9,1.8,1.9,1.9)
ref_year<- seq(2001,2010)
inf_data <- data.frame(ref_year,ref_inf)
ref_year ref_inf
1 2001 2.0
2 2002 3.0
3 2003 1.0
4 2004 2.2
5 2005 1.3
6 2006 1.5
7 2007 1.9
8 2008 1.8
9 2009 1.9
10 2010 1.9
我想要做的是创造应由ref_inf柱以前的所有数字相乘来计算新列的新列“最终通胀”与每一个数字,因此,例如,如果我想计算出最终的通货膨胀在今年2005年我应该这样做:
Final inflation= (1+1.3/100)*(1+2.2/100)*(1+1.0/100)*(1+3.0/100)*(1+2.0/100)
或者作为另一个例子,在今年最后的通货膨胀2003将
Final inflation= (1+1.0/100)*(1+3.0/100)*(1+2.0/100)
我应该对数据框的每一行进行此计算
我该如何dplyr
在R中使用它?
我们可以使用 cumprod
library(dplyr)
inf_data %>%
mutate(new = cumprod(1 + ref_inf/100))
-输出
# ref_year ref_inf new
#1 2001 2.0 1.020000
#2 2002 3.0 1.050600
#3 2003 1.0 1.061106
#4 2004 2.2 1.084450
#5 2005 1.3 1.098548
#6 2006 1.5 1.115026
#7 2007 1.9 1.136212
#8 2008 1.8 1.156664
#9 2009 1.9 1.178640
#10 2010 1.9 1.201035
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句