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

From: Gustaf Rydevik <gustaf.rydevik_at_gmail.com>
Date: Fri, 25 Jan 2008 12:24:54 +0100

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
>

Try
cbind(L[[1]],L[[2]],L[[3]])
,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

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

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Fri 25 Jan 2008 - 11:30:00 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 25 Jan 2008 - 11:30:08 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive