[R] How does do.call() work??

Gustaf Rydevik gustaf.rydevik at gmail.com
Fri Jan 25 12:24:54 CET 2008

On Jan 25, 2008 11:27 AM, Sergey Goriatchev <sergeyg at gmail.com> wrote:
> Dear members of R forum,
> Say I have a list:
> L <- list(1:3, 1:3, 1:3)
> that I want to turn into a matrix.
> I wonder why if I do:
> do.call(cbind, L)
> I get the matrix I want, but if I do
> cbind(L)
> I get something different from what I want. Why is that? How does
> do.call() actually work?
> I've read in do.call() help file this sentence: "The behavior of some
> functions, such as "substitute", will not be the same for functions
> evaluated using do.call as if they were evaluated from the
> interpreter. The precise semantics are currently undefined and subject
> to change. "
> Thanks for help!
> Sergey

,which is equal to do.call(cbind,L).
do.call takes a list of arguments, and feed each element of that list
to the function.
cbind takes two or more matrices, not a list of matrices as arguments.


Gustaf Rydevik, M.Sci.
tel: +46(0)703 051 451
address:Essingetorget 40,112 66 Stockholm, SE

More information about the R-help mailing list