R 根据另一个列表合并列表中的元素

R 根据另一个列表合并列表中的元素,r,list,merge,R,List,Merge,我有以下清单: L = list() L[[1]] = c(1,2,3) L[[2]] = c(4,5) L[[3]] = c(6,7,8) L[[4]] = c(9, 10, 11, 12, 13) L[[5]] = c(14, 15, 16) 我想根据列表ToUnite中给出的值合并L的特定元素: ToUnite = list() ToUnite[[1]] = c(1,2,3) ToUnite[[2]] = c(4,5) 因此结果列表应该包含两个元素,分别对应于L的c(1,2,3)和c

我有以下清单:

L = list()

L[[1]] = c(1,2,3)
L[[2]] = c(4,5)
L[[3]] = c(6,7,8)
L[[4]] = c(9, 10, 11, 12, 13)
L[[5]] = c(14, 15, 16)
我想根据列表
ToUnite
中给出的值合并
L
的特定元素:

ToUnite = list()
ToUnite[[1]] = c(1,2,3)
ToUnite[[2]] = c(4,5)
因此结果列表应该包含两个元素,分别对应于
L
的c(1,2,3)和c(4,5),如下所示:

result = list()
result[[1]] = seq(1,8)
result[[2]] = seq(9, 16)

如何以最有效的方式执行此操作?

我们可以使用
lappy
循环“ToUnite”,提取“L”的
列表
元素和
未列表

lapply(ToUnite, function(x) unlist(L[x]))
#[[1]]
# [1] 1 2 3 4 5 6 7 8

#[[2]]
# [1]  9 10 11 12 13 14 15 16