[R] cumulative growth rates indexed to a common starting point over n series of observations

Dirk Eddelbuettel edd at debian.org
Fri Sep 1 00:03:57 CEST 2006


On 31 August 2006 at 15:22, toby_marks at americancentury.com wrote:
| What is the R way of computing cumulative growth rates given a series of 
| discrete values indexed .
| 
| For instance, given a matrix of 20 observations for each of 5 series (zz), 
| what is the most straight forward technique in R for computing cumulative 
| growth (zzcum) ?
| It seems for the solution I'm after might be imbedding the following cum 
| growth rate calc as a function into a function call to apply, mapply, ...? 
| 
| 
| 
| zz = rnorm(100)
| dim(zz) = c(20,5)
| zz
| zzcum=matrix(nrow=20,ncol=5)
| zzcum
| zzcum[1,]=100*(1+zz[1,]/100)
| zzcum
| for(i in 2:20){zzcum[i,] = zzcum[i-1,]*(1+zz[i,]/100)}
| zzcum

How about cumprod() inside apply() ?

 zzcum <- matrix(rnorm(100), ncol=5)
 apply(zzcum/100 + 1, 2, cumprod)

Hth, Dirk

-- 
Hell, there are no rules here - we're trying to accomplish something. 
                                                  -- Thomas A. Edison



More information about the R-help mailing list