Try Reduce: f <- function(d, incr = 1) with(d, data.frame(eh = ce, be, ce = ce + be, period = period + incr)) d <- data.frame(ce = ones, be = twos, period = 0) Reduce(f, init = d, x = rep(1, 4)) Reduce(f, init = d, x = rep(1, 4), accumulate = TRUE)
On Sun, Jun 21, 2009 at 9:06 AM, Economics Guy<economics....@gmail.com> wrote: > # I have a function that takes a few vectors manipulates them and then > outputs a matrix of results: > > funct1 <- function(eh,be){ > ce <- eh+be > data.frame(eh,be,ce) > } > > ones <- c(1,1,1) > twos <- c(2,2,2) > funct1(ones,twos) > > > # I would like to iterate it and save the results from each iteration. > I could of course write a loop but I would like to do this is the most > efficient way possible. The best I have come up with is this: > > > functM <- function(eh,be,period,endPeriod){ > period <- period+1 > ce <- eh+be > {if (period < endPeriod) > functM(ce,be,period,endPeriod) > else data.frame(eh,be,ce,period)} > } > > ones <- c(1,1,1) > twos <- c(2,2,2) > functM(ones,twos,0,4) > > # As you can see it only reports the results form the last iteration. > Here it is the 4th iteration, but if you change the last argument of > the previous run of functM, you can see that it will always report the > final matrix. How can I have it save/store/write the results of each > iteration. I do not care if it stacks it all into the same matrix or > if I have to write.csv each time. I just want to do it in the most > efficient way possible (the actual program will run for many many > iterations of large vectors. > > # Thanks. > > ______________________________________________ > 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.