Dear all, in the meantime, I found a solution -- thank to a suggestion sent by Mark Leeds to me off-list.
All the best, Roland set.seed(1234) initial.matrix <- rbind(rep(1,4), matrix(0,ncol=4,nrow=5)) the.other.matrix <- matrix(runif(20), ncol=4, nrow=5) for (i in 2:(nrow(initial.matrix))) { initial.matrix[i,] <- initial.matrix[i-1,]*the.other.matrix[i-1,] } ### that is how it should look like: initial.matrix ### this is Mark's suggestion (if I understood it correctly) initial.matrix2 <- rbind(rep(1,4), matrix(1,ncol=4,nrow=5)) initial.matrix2[-1,] <- sapply(1:ncol(initial.matrix2), function(.col) { cumprod(initial.matrix2[-(nrow(initial.matrix2)),.col] * the.other.matrix[,.col]) } ) ## and it works!!! initial.matrix2 if (all(initial.matrix==initial.matrix2)) cat("Good\n") else cat("Bad\n") ## yes, I know, such comparisons of floats are notoriously problematic Roland Rau wrote: > 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 > > ______________________________________________ > R-help@r-project.org 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. > ______________________________________________ R-help@r-project.org 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.