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.