[Rd] on the usage of do.call

From: Christophe Dutang <dutangc_at_gmail.com>
Date: Tue, 02 Nov 2010 16:28:11 +0100

Hello all,

I don't know if it is possible, but I would like to use do.call in C code in my package. The function do.call is defined as
> do.call

function (what, args, quote = FALSE, envir = parent.frame()) {

    if (!is.list(args))

        stop("second argument must be a list")     if (quote) {

        enquote <- function(x) as.call(list(as.name("quote"),
        args <- lapply(args, enquote)

    .Internal(do.call(what, args, envir)) }
<environment: namespace:base>

In <src>/main/names.c, the function do.call 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?

Thanks in advance


Christophe DUTANG
Ph. D. student at ISFA, Lyon, France

	[[alternative HTML version deleted]]

R-devel_at_r-project.org mailing list
Received on Tue 02 Nov 2010 - 15:31:35 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 Tue 02 Nov 2010 - 21:20:15 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive