Re: [Rd] on the usage of do.call

From: Christophe Dutang <dutangc_at_gmail.com>
Date: Wed, 03 Nov 2010 09:44:44 +0100

Thank you for help.

So I will look for another implementation not involving do_docall.

Actually, I want to pass a function and a list of arguments as argument. The example lapply2 in section 5.11 is what I would like to do.

Christophe

2010/11/2 Duncan Murdoch <murdoch.duncan_at_gmail.com>

> 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 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"),
>> x))
>> 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?
>>
>
> You would rarely want to use do.call 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
>

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

	[[alternative HTML version deleted]]

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Wed 03 Nov 2010 - 08:47:44 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 - 12:30:16 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