在R中汇集两个不同大小的列表

时间:2017-01-09 03:36:06

标签: r lapply

我有两个矩阵列表,LIST1(大小为m)和LIST2(大小为n)。 LIST1的每个矩阵的大小为(p,q)LIST2包含大小为(p,1)的列矩阵。我想将每个LIST2列矩阵组合到每个LIST1。我试过了lapply,但无法弄明白。输出列表的大小为mn

1 个答案:

答案 0 :(得分:3)

您可以使用lapply制作嵌套循环:

unlist(lapply(LIST1, function(x) lapply(LIST2, cbind, x)), recursive = F)

这是一个可重复的小例子:

LIST1 <- list(matrix(1:4, nrow = 2), matrix(2:5, nrow = 2))
LIST2 <- list(matrix(1:2, nrow = 2))
unlist(lapply(LIST1, function(x) lapply(LIST2, cbind, x)), recursive = F)

#[[1]]
#     [,1] [,2] [,3]
#[1,]    1    1    3
#[2,]    2    2    4

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