Re: [R] converting matrix of lists to a regular matrix

2009-10-03 Thread Andrew Yee
Thanks, as you suggested, do.call(rbind, lapply(foo, unlist)) does the trick. On Sat, Oct 3, 2009 at 8:30 PM, David Winsemius wrote: > > On Oct 3, 2009, at 7:51 PM, Andrew Yee wrote: > > Take the following code: >> foo <- list() >> >> foo[[1]] <- list(a=1, b=2) >> foo[[2]] <- list(a=11, b=22) >

Re: [R] converting matrix of lists to a regular matrix

2009-10-03 Thread David Winsemius
On Oct 3, 2009, at 7:51 PM, Andrew Yee wrote: Take the following code: foo <- list() foo[[1]] <- list(a=1, b=2) foo[[2]] <- list(a=11, b=22) foo[[3]] <- list(a=111, b=222) Instead, perhaps: > do.call(rbind, lapply(foo, unlist)) a b [1,] 1 2 [2,] 11 22 [3,] 111 222 > do.call

Re: [R] converting matrix of lists to a regular matrix

2009-10-03 Thread Gabor Grothendieck
The object out in my post is identical to the object, result, in your post. If that was not what you are looking for some additional explanation is needed on what it is that you seek. > M <- matrix(list(1, 11, 111, 2, 22, 222), nc = 2, dimnames = list(NULL, > c("a", "b"))) > > foo <- list() > >

Re: [R] converting matrix of lists to a regular matrix

2009-10-03 Thread Andrew Yee
Gabor, thanks for the reply. However, the output of matrix(list(1, 11, 111, 2, 22, 222), nc = 2, dimnames = list(NULL, c("a", "b"))) is a matrix of lists. foo <- matrix(list(1, 11, 111, 2, 22, 222), nc = 2, dimnames = list(NULL, c("a", "b"))) foo[,'a'] # returns a list One possible solution is as

Re: [R] converting matrix of lists to a regular matrix

2009-10-03 Thread Gabor Grothendieck
Try this: matrix(list(1, 11, 111, 2, 22, 222), nc = 2, dimnames = list(NULL, c("a", "b"))) or out <- list(1, 11, 111, 2, 22, 222) dim(out) <- c(3, 2) colnames(out) <- c("a", "b") On Sat, Oct 3, 2009 at 7:51 PM, Andrew Yee wrote: > Take the following code: >  foo <- list() > > foo[[1]] <- list

[R] converting matrix of lists to a regular matrix

2009-10-03 Thread Andrew Yee
Take the following code: foo <- list() foo[[1]] <- list(a=1, b=2) foo[[2]] <- list(a=11, b=22) foo[[3]] <- list(a=111, b=222) result <- do.call(rbind, foo) result[,'a'] In this case, result[,'a'] shows a list. Is there a more elegant way such that result is a "regular" matrix of vectors? I imag