From bates at stat.wisc.edu  Fri Jun  3 18:14:39 2011
From: bates at stat.wisc.edu (Douglas Bates)
Date: Fri, 3 Jun 2011 11:14:39 -0500
Subject: [Rd] C-Side: Applying a function (given as param) to data
 (given as param)
In-Reply-To: <20110603101712.GD6048@siouxsie>
References: <20110603101712.GD6048@siouxsie>
Message-ID: <BANLkTi=DkQzC74HP5WEiN-eyBiBV0yUDew@mail.gmail.com>

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
>



[Rd] C-Side: Applying a function (given as param) to data (given as param)
Douglas Bates