我有两个列表,每个列表都包含相同数量的向量。List1 包含长度相同的向量,而 List2 包含可能长度不同的向量。思路是,使用 List2 中向量的内容作为对应 List1 中向量的索引。以下是可复制示例的一些代码:
现在的问题是如何将这个过程应用到整个列表,以便输出仍然是一个包含结果向量的列表?
有任何想法吗?
编辑: 这是在一些非常有帮助的答案后的编辑,列表的结构已经更新,但问题仍然存在。
以下是可重现示例的代码:
# create empty lists
List1 <- list()
List2 <- list()
# fill the lists with vectors
set.seed(50)
for (i in 1:1000) {
List1[[i]] <- sample(0:500, 360, replace= T)
}
set.seed(100)
for (i in 1:1000) {
List2[[i]] <- sample(0:200, 50, replace= T)
}
这里是一个提取每个列表中向量的示例:
vec1 <- List1[[1]]
vec2 <- List2[[1]]
# now use the second vector as index for the first one
vec1[vec2]
现在的问题是如何将这个过程应用到整个列表,以便输出仍然是一个包含结果向量的列表?
有任何想法吗?
编辑: 这是在一些非常有帮助的答案后的编辑,列表的结构已经更新,但问题仍然存在。
以下是可重现示例的代码:
# create empty lists
List1 <- list()
List2 <- list()
# fill the lists with vectors
set.seed(50)
for (i in 1:1000) {
List1[[i]] <- sample(0:500, 360, replace= T)
}
set.seed(100)
for (i in 1:1000) {
List2[[i]] <- sample(0:200, 50, replace= T)
}
# create the first level sublists
sublist1 <- list()
sublist2 <- list()
for (i in 1:8) {
sublist1[[i]] <- List1
sublist2[[i]] <- List2
}
# create the super lists
superlist1 <- list(sublist1, sublist1, sublist1, sublist1, sublist1, sublist1, sublist1, sublist1)
superlist2 <- list(sublist2, sublist2, sublist2, sublist2, sublist2, sublist2, sublist2, sublist2)
从这里可以看出,这两个超级列表具有相同的结构,它们只在最低层次的列表长度上有所不同。
那么现在的问题是,如何使用 superlist2[[1]][[1]][[1]]
的值作为相应元素的向量,用于 superlist1
中的 superlist1[[1]][[1]][[1]]
等等?