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

PO SU rcppmail at 163.com
Tue Aug 5 17:55:45 CEST 2014


Thanks for your guide!


--

PO SU
rcppmail at 163.com
Majored in Statistic Shanghai JiaoTong University





At 2014-08-05 11:23:03, "Dirk Eddelbuettel" <edd at debian.org> wrote:
>
>On 5 August 2014 at 23:07, super wrote:
>| 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
>
>I used "Google" as shorthand for "use a search engine". There must be some
>that are not flagged by your authorities.
>
>You can also search at some of the 'mailing list as website' archives like
>gmane.org, mail-archive.com, markmail.org, ...  At least the first two carry
>(or carried) this list.
>
>| registed " rcppmail at 163.com" in NetEase mailbox, then i use it to join the
>
>Consider adding a .signature with your name and affiliation as is often
>recommended on r-help and other R lists.  I show my name, so it seems fair to me to
>ask the same from you.
>
>| 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 .
>
>Sounds good. Always glad to help, but also trying not to answer the same
>questions over and over -- I'd rather try answering new ones.
>
>Have a look at the vignettes: Rcpp-introduction, Rcpp-FAQ, Rcpp-attributes as
>well as the other ones depending on what you are interested in.
>
>Dirk
> 
> 
> 
> 
>| 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
>| 
>| 
>| 
>
>-- 
>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/3a644e69/attachment-0001.html>


More information about the Rcpp-devel mailing list