From wwwhsd at gmail.com  Sun Jun  5 02:33:50 2011
From: wwwhsd at gmail.com (Henrique Dallazuanna)
Date: Sat, 4 Jun 2011 21:33:50 -0300
Subject: [Rd] call / do.call expression too big
In-Reply-To: <1307227756588-3574335.post@n4.nabble.com>
References: <1307227756588-3574335.post@n4.nabble.com>
Message-ID: <BANLkTimgHRZEmiXLWBuzpKuK3f+oT7MChw@mail.gmail.com>

Try this:

args <- list(data=quote(cars), formula=dist~speed)

On Sat, Jun 4, 2011 at 7:49 PM, Jeroen Ooms <jeroenooms at gmail.com> wrote:
> I am designing a remote procedure protocol for R, which basically performs a
> do.call on data and arguments supplied by a client. However, I am
> experiencing unfortunate behavior of the do.call function. The function
> do.call seems to serialize all objects in the args list, resulting in an
> enormous expression, that is then in some way or another returned by many
> functions. A short example:
>
> args <- list(data=cars, formula=dist~speed);
> do.call("lm",args);
>
> One can see that for this small example, the returned 'call' attribute is
> already huge. Another example:
>
> eval(call("cor.test", x=rnorm(100), y=rnorm(100)))
>
> I completely understand why this happens, yet I was wondering if there is an
> alternative to call/do.call that constructs the call in an different way so
> that the actual call object is somewhat more compact and does not contain
> all the data that was involved in the function. For example one that
> attaches the args list in an environment and constructs a call that refers
> to these objects or something similar.
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/call-do-call-expression-too-big-tp3574335p3574335.html
> Sent from the R devel mailing list archive at Nabble.com.
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



-- 
Henrique Dallazuanna
Curitiba-Paran?-Brasil
25? 25' 40" S 49? 16' 22" O



[Rd] call / do.call expression too big
Henrique Dallazuanna