[Rcpp-devel] [Rcpp] How can i call a R function in Cpp source code?

super rcppmail at 163.com
Tue Aug 5 17:07:21 CEST 2014


I am sorry for that, i  understand you.
I think i should read your book  seamless R and C++ ... first. I shoudn't just want to get a quick guide which maybe convinient to me but the oppsite to you .
BTW, i am a student from SJTU in china,and Google can't be used in china now. I registed " rcppmail at 163.com" in NetEase mailbox, then i use it to join the maillist. I used r-help maillist just several days ago. There must be a lot of things i don't know to use maillist like filter rule and the problem you said. but i will figure them out .





At 2014-08-05 08:50:02, "Dirk Eddelbuettel" <edd at debian.org> wrote:
>
>On 5 August 2014 at 17:30, super wrote:
>| 
>| Yes , maybe that is very close to my needs , sorry for my pool english
>| expression. But, the following code can't work:
>| double meanC(NumericVector x) {
>|    Function mean=Environment("package::base")["mean"];
>|    return mean(x);   
>| }
>| with the error "can't convert SEXP to double"
>| How can i fix it ? Tks.
>
>With all due respect:
>
> i)    you have not motivated why you need mean from R
>
> ii)   how to call an R function from Rcpp as been discussed on this list
>       probably half a dozen times by now, so please consider learning how to
>       search the list archive via Google 
>
> iii)  you are showing a somewhat larger amount of unfamiliarity with Rcpp
>
> iv)   you are hiding behind an anon mail handle in violation of the common
>       R mailing list standards we follow here too
>
>so I am not going out of my way to repeat all of which you can already find
>via ii) another time for you.
>
>Dirk
>
>
>| At 2014-08-05 04:30:32, "Romain Francois" <romain at r-enthusiasts.com> wrote:
>| 
>|     Not sure what you mean by hide the R function. You can extract a function
>|     by its name on the C++ side : 
>| 
>|     Function bazinga("mean") ;
>| 
>|     or extract it from a particular environment, e.g.
>| 
>|     Environment("package:base")["mean"]
>| 
>|     or 
>| 
>|     Environment base("package:base") ; 
>|     Function foo = base["mean"]
>| 
>|     Romain
>| 
>|     Le 5 août 2014 à 09:26, super <rcppmail at 163.com> a écrit :
>| 
>| 
>|         Hello Rcppusers,
>|           I want to call  a  r function in Cpp code, e.g.
>|          int  meanC( NumericVector x) {
>|             return mean(x,_["na.rm"]=TRUE);
>|         }
>|         Here function mean is a r function not rewrittened  Rcpp version's
>|         mean. I do know one way to do this:
>|          int  meanC( Function f,NumericVector x) {
>|             return f(x,_["na.rm"]=TRUE);
>|         }
>|         Then  meanC(mean,1:3)
>|         but can i hidden the true r function called ?  Is  r functions packed
>|         into some namespace?
>| 
>| 
>| 
>| 
>|         _______________________________________________
>|         Rcpp-devel mailing list
>|         Rcpp-devel at lists.r-forge.r-project.org
>|         https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>| 
>| 
>| 
>| 
>| 
>| _______________________________________________
>| Rcpp-devel mailing list
>| Rcpp-devel at lists.r-forge.r-project.org
>| https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>
>-- 
>http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20140805/04ea518b/attachment.html>


More information about the Rcpp-devel mailing list