Re: [Rd] on the usage of

From: Duncan Murdoch <>
Date: Tue, 02 Nov 2010 15:18:13 -0400

On 02/11/2010 11:28 AM, Christophe Dutang wrote:
> Hello all,
> I don't know if it is possible, but I would like to use in C code in
> my package. The function is defined as
> >
> function (what, args, quote = FALSE, envir = parent.frame())
> {
> if (!is.list(args))
> stop("second argument must be a list")
> if (quote) {
> enquote<- function(x)"quote"),
> x))
> args<- lapply(args, enquote)
> }
> .Internal(, args, envir))
> }
> <environment: namespace:base>
> >
> In<src>/main/names.c, the function is linked to the C function
> do_docall (line 499). (.Internal calls the good function line 1194.)
> And the do_docall function is defined in<src>/main/coerce.c line 2217 and
> declared as
> SEXP attribute_hidden do_docall(SEXP call, SEXP op, SEXP args, SEXP rho)
> in Internal.h.
> The problem is that I do not guess the exact meaning of theses arguments,
> and the header file Internal.h is not found when included in my C file.
> As this header is not listed in R-exts.pdf section 6.17, I think I cannot
> use the do_docall function.
> Does anyone face this problem? or have an idea on how to solve it?

You would rarely want to use from C. You should use eval(). See the examples in the Writing R Extensions manual, in the section "Evaluating R expressions from C".

Duncan Murdoch mailing list Received on Tue 02 Nov 2010 - 19:28:38 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 03 Nov 2010 - 10:40:16 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive