# [R] Iteration within data blocks

Joerg Maeder joerg.maeder at ethz.ch
Wed Oct 31 09:15:49 CET 2001

```hello,

at the moment i found only a solution that works with a single loop for
the scenzarios

#the dataset (i used the first letter for colum names)
da <-
cbind(s=c(1,1,1,1,2,2,2,2),y=c(1,2,3,4,1,2,3,4),g=c(.05,.03,.01,0,.01,.01,.01,0),v=c(1,0,0,0,1,0,0,0))
#set the values of first year to zero (it woudn't be used for
calculations)
da[da[,'y']==1,'g'] <- 0
#thye single loop
for (as in 1:2)
da[da[,'s']==as,'v'] <- cumprod(da[da[,'s']==as,'g']+1)*da[da[,'s']==as
& da[,'y']==1,'v']

perhaps i will find a solution without any loops. if yes, will send it
to you

gruess

joerg

Michaell Taylor wrote:
>
> I know there must be an easy way to do this, but I am too new to R and it
> must be late because I can't seem to get myself around this.  Assume I have,
>
> scenario        year    growth  value
> 1               1       .05     1
> 1               2       .03     0
> 1               3       .01     0
> 1               4       0       0
> 2               1       .01     1
> 2               2       .01     0
> 2               3       .01     0
> 2               4       0       0
>
> What I want to do is within each scenario "grow" the value by the growth rate
> so that I get :
> scenario        year    growth  value
> 1               1       .05     1
> 1               2       .03     1.03
> 1               3       .01     1.0403
> 1               4       0       1.0403
> 2               1       .01     1
> 2               2       .01     1.01
> 2               3       .01     1.0201
> 2               4       0       1.0201
>
> There are 5,000 scenarios and 10 years. The only thing dancing in my head are
> giant for loops, which I know isn't right.
>
> Any suggestions?
>
> =========================================
> Michaell Taylor, PhD
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

--
Joerg Maeder             IACETH              INSTITUTE
PhD Student                              FOR ATMOSPHERIC
Phone: +41 1 633 36 25                 AND CLIMATE SCIENCE
Fax: +41 1 633 10 58                  ETH ZÜRICH Switzerland
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

```