[R] Extract rows from a list object
Dimitris Rizopoulos
d.rizopoulos at erasmusmc.nl
Tue Aug 24 11:40:40 CEST 2010
try something like this:
n <- 23
x <- array(1:20, dim = c(n, 6))
huge.list <- rep(list(x), 1000)
out <- lapply(1:4, function (i) {
t(sapply(huge.list, "[", i = i, j = 1:6))
})
out[[1]]
out[[4]]
I hope it helps.
Best,
Dimitris
On 8/24/2010 11:29 AM, Vladimir Mikryukov wrote:
> Dear list members,
>
> I need to create a table from a huge list object,
> this list consists of matrices of the same size (but with different
> content).
>
> The resulting n tables should contain the same rows from all matrices.
>
> For example:
> n<- 23
> x<- array(1:20, dim=c(n,6))
>
> huge.list<- list()
> for (i in 1:1000) {
> huge.list[[i]]<- x }
>
>
> # One of 1000 matrices
> huge.list[[1]][1:4, 1:6]
> [,1] [,2] [,3] [,4] [,5] [,6]
> [1,] 1 4 7 10 13 16
> [2,] 2 5 8 11 14 17
> [3,] 3 6 9 12 15 18
> [4,] 4 7 10 13 16 19
> ...
>
> # The result should be like that:
> # One of n tables (with the row 4 from all 1000 matrices):
> [,1] [,2] [,3] [,4] [,5] [,6]
> [1,] 4 7 10 13 16 19
> [2,] 4 7 10 13 16 19
> [3,] 4 7 10 13 16 19
> [4,] 4 7 10 13 16 19
> ...
> [999,] 4 7 10 13 16 19
> [1000,] 4 7 10 13 16 19
>
>
> # I tried to convert a list object to an array
> ARR<- array(unlist(huge.list), dim = c(dim(huge.list[[1]]),
> length(huge.list)))
> # then split it and use abind function, but it didn't work
>
> Thanks in advance!
> Vladimir
>
> --
> Vladimir Mikryukov
> PhD student
> Institute of Plant& Animal Ecology UD RAS,
> Lab. of Population and Community Ecotoxicology
> [8 Marta 202, 620144, Ekaterinburg, Russia]
> Tel. +7 343 210 38 58 (ext.290)
> Fax: +7 343 260 82 56, +7 343 260 65 00
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
>
--
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus University Medical Center
Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014
More information about the R-help
mailing list