Объединить элементы из 2 списков в одно подмножество в R - PullRequest
0 голосов
/ 06 июля 2018

У меня есть 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

Спасибо

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

С 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))
0 голосов
/ 06 июля 2018

Как насчет

mapply(c, listA, listB, SIMPLIFY = FALSE)

Если результат должен быть отсортирован без дубликатов, то

mapply(function (x, y) sort(unique(c(x, y))), listA, listB, SIMPLIFY = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...