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)
>
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
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()
>
>
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
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
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
6 matches
Mail list logo