[R] Result depends on previous result; easy with a loop; but without a loop?

Roland Rau roland.rproject at gmail.com
Fri Dec 14 18:13:22 CET 2007


Dear all,

I am pretty sure that this has been discussed before. Unfortunately, I 
can not find anything in the archives -- probably because I am 
"RSiteSearching" for the wrong terms. If I remember correctly, I think I 
even asked this question a few years ago. But I cannot even find this.

The basic problem is that a result depends on a previous result. This is 
easy with a loop--but how can I do this without a loop?

Lets give an example:

initial.matrix <- rbind(rep(1,4), matrix(0,ncol=4,nrow=5))
the.other.matrix <- matrix(runif(20), ncol=4, nrow=5)

the initial matrix should be filled according to the following 
(pseudo-code) rule:
if (row==1) initial.matrix[1,] <- 1
if (row>1) initial.matrix[x,] <- initial.matrix[x-1,] * 
the.other.matrix[x-1,]

as I said this is easy to do with a loop:
for (i in 2:(nrow(initial.matrix))) {
   initial.matrix[i,] <- initial.matrix[i-1,]*the.other.matrix[i-1,]
}
initial.matrix

But how can I do this without a loop?

Thank you already in advance!
Roland



More information about the R-help mailing list