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

Dirk Eddelbuettel edd at debian.org
Tue Aug 5 16:35:13 CEST 2014


On 5 August 2014 at 16:25, Sven E. Templer wrote:
| ii), e.g.:
| 
| http://www.mail-archive.com/search?q=call+R+function&l=rcpp-devel%40lists.r-forge.r-project.org
| 
| or try yourself:
| 
| http://www.mail-archive.com/rcpp-devel@lists.r-forge.r-project.org/

Or stackoverfloww:  http://stackoverflow.com/search?q=%5Brcpp%5D+call+R+function
(which gets a few false positive)
 
| Nevertheless I liked the question and learned something today (thank

Then you never read the Rcpp-introduction vignette, or our corresponding JSS
article, either.  Maybe you should?  ;-)  In its there too...

We're happy to help everybody here in as much as we can as it better for all
if the Rcpp community grow, and I generally try to reply reply promptly ---
but it is simply not efficient use of everybody's (limited) time to repeat
the same information over and over.

Dirk

| you Romain). So the trend is at least away from, and not towards iii).
| And for iv), nice alias, though... it may also be political.
| 
| On 5 August 2014 14:50, 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
| > _______________________________________________
| > 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


More information about the Rcpp-devel mailing list