oliver
2011-Jun-03 10:17 UTC
[Rd] C-Side: Applying a function (given as param) to data (given as param)
Hello, I'm implementing a package (C-extension), where one function gets data and a function that needs to be applied to the data. I want to apply the function to (parts of) the data on the C-side. 1) how do I apply a function (given via SEXP) to data 2) how do I select parts of the data (also provided via SEXP)? Comment on 2: I want to implement a moving/rolling/running apply on the data, so I want to select a data window. How can this be done, and how can it be done efficiently? For example on page 101 of "Writing R extensions" there was a trick on how to use REAL on the result, before using it in a loop. Can this be used for efficiency reasons in general? Ciao, Oliver P.S.: What do these macros (like REAL()) do? Do they convert data or rather cast datatypes?
Douglas Bates
2011-Jun-03 16:14 UTC
[Rd] C-Side: Applying a function (given as param) to data (given as param)
On Fri, Jun 3, 2011 at 5:17 AM, oliver <oliver at first.in-berlin.de> wrote:> Hello, > > I'm implementing a package (C-extension), > where one function gets data and a function > that needs to be applied to the data. > > I want to apply the function to (parts of) > the data on the C-side. > > 1) how do I apply a function (given via SEXP) to data > 2) how do I select parts of the data (also provided via SEXP)?Not to be facetious but you begin by reading the "Writing R Extensions" manual. An alternative is to read the vignette Rcpp-Introduction available as http://dirk.eddelbuettel.com/code/rcpp/Rcpp-introduction.pdf and soon to be in The R Journal. They show an explicit example of apply in compiled code (C++ using the Rcpp structures, in their case).> Comment on 2: I want to implement a moving/rolling/running > apply on the data, so I want to select a data window. > How can this be done, and how can it be done efficiently? > > For example on page 101 of "Writing R extensions" there was a trick > on how to use REAL on the result, before using it in a loop. > Can this be used for efficiency reasons in general? > > > ?Ciao, > ? ?Oliver > > > P.S.: What do these macros (like REAL()) do? Do they convert data > ? ? ?or rather cast datatypes? > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >