1

我有以下列表:

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)

我想L根据列表中给出的值合并特定元素ToUnite

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)

我怎样才能以最有效的方式做到这一点?

4

1 回答 1

2

我们可以通过 'ToUnite' 循环lapply,提取list'L' 的元素和unlist

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
于 2018-12-18T13:17:27.120 回答