do.call("rbind", your.list)

Patrick Burns

Burns Statistics
[EMAIL PROTECTED]
+44 (0)20 8525 0696
http://www.burns-stat.com
(home of S Poetry and "A Guide for the Unwilling S User")

Robin Hankin wrote:

Hi

I have a function that returns an array with four columns but the
number of rows differs with the calling argument.  I want to use
something like sapply() to rbind() the outputs together.

Following toy example illustrates my problem:

f  <- function(i) {
  options(warn= -1)
  r <- ceiling(sqrt(i))
  return(matrix(1:3,r,4))
}

Thus sapply(1:5,f) is a list with five elements.

R> (a <- sapply(1:5,f))
[[1]]
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    1

#{...DELETED...}

[[5]]
     [,1] [,2] [,3] [,4]
[1,]    1    1    1    1
[2,]    2    2    2    2
[3,]    3    3    3    3

R>

what I want is the equivalent of

R> rbind(a[[1]],a[[2]],a[[3]],a[[4]],a[[5]])

but with an arbitrary upper limit and without any loops. Anyone?


Obligatory attempt:
R> string<-paste("jj<-rbind(a[[1]] ",paste(",a[[",2:5,"]]",collapse=" "),")")
R> eval(parse(text=string))


______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help



______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to