[R-pkg-devel] Call internal R functions in C

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Mon Apr 26 02:46:27 CEST 2021

On 25/04/2021 7:23 p.m., Cai Li wrote:
> Hello All,
> I'm developing a package with C code. My question may be naive: I have
> several internal R functions that need to be called by C, but I cannot get
> it to work or find a solution. It can work if I export those internal
> functions in namespace, but it fails if I just want to keep them as
> internal functions without exporting them. I guess I need some flags to
> indicate the "internal" R internal functions? Could you please share your
> thoughts on how to fix this? Much appreciated in advance!
> //   set up call to R function "R_function"
>      SEXP func_R;
>      PROTECT(func_R=lang2(install("R_function"), func_data));

It all depends on the environment where you evaluate that expression, 
just as it would if it was R code.  You can't see internal package 
functions from the global environment, you need to evaluate them in the 
package namespace environment.

Duncan Murdoch

More information about the R-package-devel mailing list