[R] Merge list to list - as list

jim holtman jholtman at gmail.com
Sun Sep 3 15:09:00 CEST 2006


a slight modification of your routine should work:

#Last week, I asked about merge x and y as list.
#Now I have a dataset with list of list like:
x <- list(list(matrix(1:20, 5, 4),matrix(1:20, 5, 4)),
         list(matrix(1:20, 5, 4),matrix(1:20, 5, 4)))
y <- list(list(c(1, -1, -1, 1, 1),c(1, 1, -1, -1, -1)),
         list(c(1, 1, 1, 1, 1),c(1, 1, -1, 1, -1)))
x
y

#I need merge x and y, I have tried with
list.uni <- vector("list", length(x))
for (i in 1:length(x)) {
    for (j in 1:length(x[[1]])) {
         list.uni[[i]][[j]] <- cbind(x[[i]][[j]],y[[i]][[j]])
    }
}
list.uni


On 9/3/06, Muhammad Subianto <msubianto at gmail.com> wrote:
> Dear all,
> #Last week, I asked about merge x and y as list.
> #Now I have a dataset with list of list like:
> x <- list(list(matrix(1:20, 5, 4),matrix(1:20, 5, 4)),
>          list(matrix(1:20, 5, 4),matrix(1:20, 5, 4)))
> y <- list(list(c(1, -1, -1, 1, 1),c(1, 1, -1, -1, -1)),
>          list(c(1, 1, 1, 1, 1),c(1, 1, -1, 1, -1)))
> x
> y
>
> #I need merge x and y, I have tried with
> list.uni <- vector("list", length(x))
> for (i in 1:length(x)) {
>     for (j in 1:length(x[[1]])) {
>          list.uni[[i]][[j]] <- mapply(cbind,
>                                       x[[i]][[j]],
>                                       y[[i]][[j]],
>                                       SIMPLIFY=FALSE)
>     }
> }
> list.uni
>
> I have learn about ?lapply, ?sapply and ?mapply but I still didn't
> understand how to use it.
> I need the result something like
>
>
> [[1]]
> [[1]][[1]]
>     [,1] [,2] [,3] [,4] [5]
> [1,]    1    6   11   16  1
> [2,]    2    7   12   17  -1
> [3,]    3    8   13   18  -1
> [4,]    4    9   14   19  1
> [5,]    5   10   15   20  1
>
> [[1]][[2]]
>     [,1] [,2] [,3] [,4] [5]
> [1,]    1    6   11   16  1
> [2,]    2    7   12   17  1
> [3,]    3    8   13   18  -1
> [4,]    4    9   14   19  -1
> [5,]    5   10   15   20  -1
>
>
> [[2]]
> [[2]][[1]]
>     [,1] [,2] [,3] [,4] [5]
> [1,]    1    6   11   16  1
> [2,]    2    7   12   17  1
> [3,]    3    8   13   18  1
> [4,]    4    9   14   19  1
> [5,]    5   10   15   20  1
>
> [[2]][[2]]
>     [,1] [,2] [,3] [,4] [5]
> [1,]    1    6   11   16  1
> [2,]    2    7   12   17  1
> [3,]    3    8   13   18  -1
> [4,]    4    9   14   19  1
> [5,]    5   10   15   20  -1
>
> Thanks you for any help.
> Best wishes, Muhammad Subianto
>
>
>
>
> #Gabor Grothendieck ggrothendieck at gmail.com
> #Mon Aug 28 13:53:52 CEST 2006
>
> Here are two ways:
>
> 1. use indexes:
>
> lapply(seq(along = x), function(i) cbind(x[[i]], y[[i]]))
>
> 2. use mapply:
>
> mapply(cbind, x, y, SIMPLIFY = FALSE)
>
>
> On 8/28/06, Muhammad Subianto <msubianto at gmail.com> wrote:
> > Dear all,
> >
> > I have dataset
> > x <- list(matrix(1:20, 5, 4),matrix(1:20, 5, 4),matrix(1:20, 5, 4))
> > y <- list(matrix(110:114, 5, 1),matrix(110:114, 5, 1),matrix(110:114, 5, 1))
> >
> > I need merge x and y as list (y put in last column).
> > The result is something like
> >
> > [[1]]
> >     [,1] [,2] [,3] [,4]  [,5]
> > [1,]    1    6   11   16   110
> > [2,]    2    7   12   17   111
> > [3,]    3    8   13   18   112
> > [4,]    4    9   14   19   113
> > [5,]    5   10   15   20   114
> >
> > [[2]]
> >     [,1] [,2] [,3] [,4]  [,5]
> > [1,]    1    6   11   16   110
> > [2,]    2    7   12   17   111
> > [3,]    3    8   13   18   112
> > [4,]    4    9   14   19   113
> > [5,]    5   10   15   20   114
> >
> > [[3]]
> >     [,1] [,2] [,3] [,4]  [,5]
> > [1,]    1    6   11   16   110
> > [2,]    2    7   12   17   111
> > [3,]    3    8   13   18   112
> > [4,]    4    9   14   19   113
> > [5,]    5   10   15   20   114
> >
> > I have tried
> > a <- list(x,y)
> > as.data.frame(t(sapply(a, rbind)))
> > lapply(a, function(x) matrix(unlist(x), nrow = length(x), byrow = TRUE))
> > but I don't know how to fix it.
> >
> > Regards, Muhammad Subianto
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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.
>


-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?



More information about the R-help mailing list