On Jan 25, 2008 11:27 AM, Sergey Goriatchev <[EMAIL PROTECTED]> 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@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.