Worik: On Fri, Apr 20, 2012 at 1:22 AM, Worik R <wor...@gmail.com> wrote: > On Fri, Apr 20, 2012 at 4:42 PM, Jeff Newmiller > <jdnew...@dcn.davis.ca.us> wrote: >> If you read the help, it talks about compiling vectors into matrices, or >> scalars into vectors. It does not say anything about combining matrices. >> >> For the error about 14 elements, you should keep in mind that matrices are >> just vectors with dim attributes that indicate how the linear memory is to >> be "folded". >> >> As far as I know, the standard way to handle combining matrices as you want >> to would involve storing them in a list and using Reduce and rbind. If you >> can vectorize the whole process instead of segmenting it by groups of rows >> then you can speed things up considerably. > > Thank you. That was helpful. I did read the help on [vsl]apply. But > the idea that matrices are "folded vectors" was, of course not there.
It certainly is -- where it should be: ?matrix says: "is.matrix returns TRUE if x is a vector and has a "dim" attribute of length 2) and FALSE otherwise." and even "If you just want to convert a vector to a matrix, something like dim(x) <- c(nx, ny) dimnames(x) <- list(row_names, col_names) will avoid duplicating x. " Please do not fault R for your errors. -- Bert > > Worik > >> --------------------------------------------------------------------------- >> Jeff Newmiller The ..... ..... Go Live... >> DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... >> Live: OO#.. Dead: OO#.. Playing >> Research Engineer (Solar/Batteries O.O#. #.O#. with >> /Software/Embedded Controllers) .OO#. .OO#. rocks...1k >> --------------------------------------------------------------------------- >> Sent from my phone. Please excuse my brevity. >> >> Worik R <wor...@gmail.com> wrote: >> >>>Friends >>> >>>I clearly donot understand how sapply and vapply work. >>> >>>What I have is a function that returns a matrix with an indeterminate >>>number of rows (some times zero) but a constant number of columns. I >>>cannot reliably use an apply function to assemble the matrices into a >>>matrix. I am not sure it is possible. >>> >>>I can demonstrate the core of my confusion with this simple code. >>> >>>A.f <- function(i){ >>> ret <- matrix("a", i, 7) >>> cat(i, class(ret), dim(ret), "\n") >>> return(ret) >>>} >>>V.f <- function(){ >>> SS <- vapply(c(1,2), >>> A.f, >>> rep('a', 7)) >>> return(SS) >>>} >>>S.f <- function(){ >>> SS <- sapply(c(1,2), >>> A.f) >>> cat("SS", class(SS), dim(SS), "\n") >>> return(SS) >>>} >>> >>> >>>Calling V.f() fails: >>> >>>> V.f() >>>1 matrix 1 7 >>>2 matrix 2 7 >>>Error in vapply(c(1, 2), A.f, rep("a", 7)) : >>> values must be length 7, >>> but FUN(X[[2]]) result is length 14 >>>> >>> >>> >>>Calling S.f() returns a list. >>> >>> >>>Do I have to accept I am going to be getting a list and I have to >>>assemble a matrix in a loop? >>> >>>cheers >>>Worik >>> >>>______________________________________________ >>>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. >> > > ______________________________________________ > 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. -- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm ______________________________________________ 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.