On 8/20/07, Vincent Carey 525-2265 <[EMAIL PROTECTED]> 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

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to