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

From: Dirk Eddelbuettel <edd_at_debian.org>
Date: Fri 01 Sep 2006 - 21:07:35 GMT

On 1 September 2006 at 14:59, Dirk Eddelbuettel wrote:
|
| On 1 September 2006 at 14:30, toby_marks@americancentury.com wrote:
| | The apply with the cumprod was exactly what I was after. The apply just
| | wasn't clicking with me, and I had overlooked the cumprod. Thanks to all
| | for pushing me down the right path!
| |
| | Actually, what I am ultimately after is a way to link this series, without

| | having to use a for loop ( the only way I can think of ... ). But, would
| | like to see if it can be linked using mapply or apply against the rows
| | and to compute the linked results.
| |
| | zz = matrix(rnorm(20), ncol=2)
| | zzcum = apply(zz/100 + 1, 2, cumprod)
| | zzlinkcum = 100*zzcum
| | for(i in 2:length(zz[,1])){ zzlinkcum[i,]=zzlinkcum[i-1,]*zzcum[i,]} ###
| | Is there a better way here ?
|
| Sure, why not call apply again?
|
| > set.seed(42); zz <- matrix(rnorm(20), ncol=2)
| > zzcum <- apply(1+zz/100, 2, cumprod)
| > apply(rbind(c(1,1), zzcum), 2, cumprod)*100

Small mistake, that compounds twice. You probably want

> set.seed(42)
> zz <- matrix(rnorm(20), ncol=2)
> apply( rbind(c(1,1), zz/100+1), 2, cumprod)*100
          [,1]      [,2]
 [1,] 100.0000 100.00000
 [2,] 101.3710 101.30487
 [3,] 100.7985 103.62135
 [4,] 101.1645 102.18220
 [5,] 101.8048 101.89732
 [6,] 102.2163 101.76147
 [7,] 102.1079 102.40863
 [8,] 103.6512 102.11753
 [9,] 103.5531  99.40482

[10,] 105.6433 96.97888
[11,] 105.5770 98.25911
>

Hth, Dirk

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

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Sat Sep 02 07:42:07 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Thu 07 Sep 2006 - 07:51:17 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.