[Rd] aesthetics of do.call
deepayan.sarkar at gmail.com
deepayan.sarkar at gmail.com
Tue Aug 21 07:20:33 CEST 2007
On 8/20/07, Vincent Carey 525-2265 <stvjc at channing.harvard.edu> wrote:
>
>
> library(MASS)
> G1 = glm(sp~CW, data=crabs, fam=binomial)
> G2 = do.call("glm", list(sp~CW, family=binomial, data=crabs))
>
> G1$call is very nice to look at
> G2$call is very voluminous
>
> if we revise do.call to
>
> 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)
> }
> ans = .Internal(do.call(what, args, envir))
> ans$call = match.call()
> ans
> }
>
> G1 and G2 look a lot more alike
But then you get things like
> do.call(c, list(1, 2, 3))
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
$call
do.call2(what = c, args = list(1, 2, 3))
Warning message:
In ans$call = match.call() : Coercing LHS to a list
which is probably not what you want to happen.
-Deepayan
More information about the R-devel
mailing list