[Rcpp-devel] [RCPP Sugar] sapply function

Romain Francois romain at r-enthusiasts.com
Thu May 30 18:17:29 CEST 2013


Le 10/05/13 17:40, Julien Duvanel a écrit :
> Hello again,
>
> I hope I don't disturb you too much. I have again a small question. I
> haven't seen the answer on your vignette, maybe this is not possible.
> Here's what I would like to do :
>
> /double Foo(double x, double a1, double a2) {/
> /return f(x,a1,a2);/
> /}/
> /
> /
> /NumericVector myVec;/
> /
> /
> /sapply(myVec, Foo(  ……, a1, a2)); // This is the line not working/
>
> In every example I saw, Foo (in the example, it's sometimes square)
> could only have one parameter (and in my case I have many parameters).
>
> Is it possible ? Am I missing something ?
>
> Thank you very much (again) for your time,
>
> Have a nice evening/week-end,
>
> Julien

So to elaborate on my answer, since you did not report back, something 
like this works for me:

#include <Rcpp.h>
using namespace Rcpp ;

double fun(double x, double y, double z) {
     return x + y + z ;
}

// [[Rcpp::export]]
NumericVector mapply_fun(NumericVector x, NumericVector y, NumericVector z){
     return mapply(x, y, z, fun ) ;
}


So mapply'ing fun over x, y and z. works for 2 or 3 objects for now.

Romain

-- 
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30

R Graph Gallery: http://gallery.r-enthusiasts.com

blog:            http://blog.r-enthusiasts.com
|- http://bit.ly/Zs97qg  : highlight 0.4.1
`- http://bit.ly/10X94UM : Mobile version of the graph gallery



More information about the Rcpp-devel mailing list