我有2个列表,每个列表包含2个子集:
listA
[[1]]
1 2 3 5 14 15 17 20
[[2]]
26 27 29 32 35 40
listB
[[1]]
4 6 7 8 9 10 11 12 13 14 16 18 19 21 22 23 24 25
[[2]]
28 30 31 33 34 36 37 38 39
我需要创建一个新列表,其中包含两个列表中各个子集的组合元素。
我希望得到如下列表:
list_AB
[[1]]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #Combine [[1]] of listA and listB
[[2]]
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 #Combine [[2]] of listA and listB
谢谢
答案 0 :(得分:3)
怎么样
mapply(c, listA, listB, SIMPLIFY = FALSE)
如果结果应排序而不重复,则
mapply(function (x, y) sort(unique(c(x, y))), listA, listB, SIMPLIFY = FALSE)
答案 1 :(得分:1)
有了tidyverse
,我们可以做到
library(purrr)
pmap(list(listA, listB), ~ sort(c(...)))
#[[1]]
# [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 15 16 17 18 19 20 21 22 23 24
#[26] 25
#[[2]]
# [1] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 49
listA <- list(c(1, 2, 3, 5, 14, 15, 17, 20), c(26, 27, 29, 32, 35, 49))
listB <- list(c(4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 21, 22,
23, 24, 25), c(28, 30, 31, 33, 34, 36, 37, 38, 39))