Using lapply when there are dependencies
For loops are not slow. Inefficient memory management in for loops is slow. Feel free to preallocate your output vectors and write for loops to your heart's content. If you really want speed you can write this in C++ using Rcpp [1]. If your f() is a standard digital filter algorithm this has already been done for you (see ?filter). [1] https://stat.ethz.ch/pipermail/r-help//2014-December/424027.html --------------------------------------------------------------------------- Jeff Newmiller The ..... ..... Go Live... DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... Live: OO#.. Dead: OO#.. Playing Research Engineer (Solar/Batteries O.O#. #.O#. with /Software/Embedded Controllers) .OO#. .OO#. rocks...1k --------------------------------------------------------------------------- Sent from my phone. Please excuse my brevity.
On May 27, 2015 4:34:01 PM PDT, blue honour via R-help <r-help at r-project.org> wrote:
Hi all, Let's say I have a vector: vv<-c(1,2,3) And suppose I have a function f(a,b), which is a function of 2 scalar inputs. I would like to evaluate this function separately for each element of the vv vector while the second input to f( ) will be the previous output from f( ). So, the valuation of f() has a dependency on the previous f( ) valuation (recursive). This type of calculation is easy to set up with a for loop but that will run slow. How can I achieve this with apply family of functions please? I have the same question for the case when vv is a data.table instead of a vector. Thank you for any help.
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.