[Rcpp-devel] Rcpp: accessing non exported function in a given namespace
romain at r-enthusiasts.com
Thu Jul 28 15:15:24 CEST 2011
Le 22/07/11 16:10, Renaud a écrit :
> I am using Rcpp in a package and I need to get a non exported function
> in some other namespace.
> I do something like the following but it seems to work only for exported
> functions (or I guess any R variables):
> Environment ns = Environment("package:stats");
> Function fun = ns[".asSparse"];
> This throws an error: "cannot convert to function".
> I am running:
> - R-2.13.0 on Ubuntu 10.04
> - Rcpp 0.9.5
> Actually, I would like to access any type of non-exported R variable,
> but I imagine it would work the same and changing the left-side class
> should do the trick.
> I am sure there is an easy way to do this in Rcpp. Any suggestion?
> Thank you.
Yes. You need Environment::namespace_env to get the namespace and not
the package environment.
Something like this:
fx <- cxxfunction( , '
Environment ns = Environment::namespace_env( "stats" ) ;
return ns[".asSparse"] ;
', plugin = "Rcpp" )
Professional R Enthusiast
+33(0) 6 28 91 30 30
|- http://bit.ly/lJoWbH : Montpellier Comédie Club - Juin 2011
|- http://bit.ly/kaSV6U : Stand up set at Up The Creek
`- http://bit.ly/hdKhCy : Rcpp article in JSS
More information about the Rcpp-devel