On 8/23/05, Martin Maechler <[EMAIL PROTECTED]> wrote:
> >>>>> "Gabor" == Gabor Grothendieck <[EMAIL PROTECTED]>
> >>>>> on Mon, 22 Aug 2005 18:55:38 -0400 writes:
>
> ..................
>
> Gabor> Try do.call like this:
>
> Gabor> ff <- x ~ g*h
> Gabor> do.call("substitute", list(ff, list(x = as.name("weight"))))
>
> Just a small remark: For all those who -- like me -- have found
> it ``unpleasant'' to have to quote the first argument of do.call():
> You don't have to any longer since the NEWS of R 2.1.0 contains
>
> o do.call() now takes either a function or a character string as
> its first argument. The supplied arguments can optionally be
> quoted.
>
> So the above could be
>
> do.call(substitute, list(ff, list(x = as.name("weight"))))
I have used that form but went back to the character form
when I noticed the entire text of the function appearing
in tracebacks, which I found to be a nuisance, particularly
for functions with large bodies:
> f <- function(x) { stop() }
> do.call(f, list(3))
Error in function (x) :
> traceback()
3: stop()
2: function (x)
{
stop()
}(3)
1: do.call(f, list(3))
Of course, in the case of substitute the body is only one line.
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel