我有以下數據框,需要計算3年的化合物回報。計算連續的化合物回報
2013 2014 2015 2016 Compound
21480 26384 166760 259842 12.1
104530 92259 80700 79434 0.76
28245 31614.7 29591.3 28557.1 1.01
最後一列Compound
是以下公式中的2013-16數據的第三行的乘積:
(31614.7/28245) * (29591.3/31614.7) * (28557.7/29591.3) = 1.0111
以下是我的啞代碼:
CR <- rep(1,3);
Compounding_Yrs <- 3;
Annual_Gwth <- data.frame(matrix(NA, nrow = 3, ncol = 3));
for(i in 1:nrow(dt))
for(j in 1:Compounding_Yrs)
{
Annual_Gwth[i,j]<-dt[i,j+1]/dt[i,j];
CR[i]<-CR[i]*Annual_Gwth[i,j]
}
CR
是最後一列中的複合率。我的數據集dt
有超過10萬行,所以上面的代碼非常慢。
必須有更好的方法來做到這一點。將不勝感激任何幫助。