[Rd] How to get an object name from C?

Michael Lawrence |@wrence@m|ch@e| @end|ng |rom gene@com
Fri Jan 24 18:02:35 CET 2020


Since substitute() is implemented in C, you could look at its implementation.

On Fri, Jan 24, 2020 at 1:09 AM Daniel Cegiełka
<daniel.cegielka using gmail.com> wrote:
>
>
> (earlier I sent it as html by mistake).
>
> Hi,
>
> How can I get from C an object name used as a function argument? I
> have sample code in C that gives me access to the name of the function
> being called:
>
>
> SEXP xname(SEXP x)
> {
>         const char *fun_name = CHAR(PRINTNAME(CAR(x)));
>         x =  CDR(x);
>         const char *arg_name = isNull(TAG(x)) ? "" : CHAR(PRINTNAME(TAG(x)));
>
>         Rprintf("fn_name: %s, arg_name: %s\n", fun_name, arg_name);
>         return R_NilValue;
> }
>
>
> > xname <- function(...) invisible(.External("xname", ...))
> >
> > x1 = 123
> >
> > xname(x1)
> fn_name: xname, var_name:
>
>
> However, I am trying to find a way to access the object name. In the
> documentation I found a solution for named args:
>
>
> > xname(arg = x1)
> fn_name: xname, var_name: arg
>
>
> And I'd like to find the equivalent in C for substitute():
>
> > substitute(x1)
> x1
>
>
> Best regards,
> Daniel
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



-- 
Michael Lawrence
Senior Scientist, Bioinformatics and Computational Biology
Genentech, A Member of the Roche Group
Office +1 (650) 225-7760
michafla using gene.com

Join Genentech on LinkedIn | Twitter | Facebook | Instagram | YouTube



More information about the R-devel mailing list