在 R 中按列组合两个列表列表

Combining two lists of lists column wise in R

我正在处理两个单独的数据框列表列表。它们的尺寸完全相同。我正在尝试将每个数据框(驻留在列表的列表中)与另一个数据框(驻留在列表的另一个列表中)组合起来。我相信我需要使用 mapply 和 sapply 的某种组合,但我无法弄清楚。这是我目前所拥有的:

mapply(function(x,y) { sapply(cbind) }, x = e06_bl, Y = e06_cos)

下面将为您提供一些与我正在使用的数据类似的示例数据。 list1list2 是我正在使用的。 desired_list 是我想要完成的。

df1_subA <- data.frame(sub = rep(1,3), val1 = round(rnorm(1:3),3))
df2_subA <- data.frame(sub = rep(1,5), val1 = round(rnorm(1:5),3))
df1_subB <- data.frame(sub = rep(2, 3), val1 = round(rnorm(1:3),3))
df2_subB <- data.frame(sub = rep(2,6), val1 = round(rnorm(1:6),3))

vec1_subA <-sample(3)
vec2_subA <- sample(5)
vec1_subB <- sample(3)
vec2_subB <- sample(6)

list1 <- list(list(df1_subA, df2_subA), list(df1_subB, df2_subB))
list2 <- list(list(vec1_subA, vec2_subA), list(vec1_subB, vec2_subB))
desired_list <- list(list(cbind(df1_subA, val2 = vec1_subA), cbind(df2_subA, val2 = vec2_subA)), list(cbind(df1_subB, val2 = vec1_subB), cbind(df2_subB, val2 = vec2_subB)))
lapply(X = 1:length(list1), FUN = function(i)
    lapply(X = 1:length(list1[[i]]), FUN = function(j) data.frame(list1[[i]][[j]], val2 = list2[[i]][[j]])))
# [[1]]
# [[1]][[1]]
  # sub   val1 val2
# 1   1  1.817    2
# 2   1  1.642    1
# 3   1 -0.007    3

# [[1]][[2]]
  # sub   val1 val2
# 1   1  0.314    3
# 2   1  1.527    4
# 3   1  0.327    5
# 4   1 -0.527    2
# 5   1 -0.151    1


# [[2]]
# [[2]][[1]]
  # sub   val1 val2
# 1   2 -1.694    3
# 2   2 -1.595    2
# 3   2  0.442    1

# [[2]][[2]]
  # sub   val1 val2
# 1   2 -0.773    2
# 2   2 -0.185    5
# 3   2  0.233    6
# 4   2  1.515    4
# 5   2  0.980    1
# 6   2  2.422    3