Я хочу объединить / добавить / объединить / объединить два именованных списка, listA
и listB
, в один список (listComplete
). Если элемент находится в обоих списках, оставьте один и отбросьте другой.
Пусть
listA = list(a = 'a', b = 'b')
listB = list(a = 'a_FromListB', c = 'c')
Тогда я хочу соединить / объединить эти два в
listComplete = list(a = 'a_FromListB', b = 'b', c = 'c')
Я пытался использовать c
, но это повторяет все элементы. Я читал, что base::append
- это просто оболочка вокруг c
, и по какой-то причине я получаю ошибку на purrr::append
(не существует в пространстве имен - я использую purrr 0.3.2). Я также пытался purrr::list_modify
, но это "гнездо" listB
для элемента a
в listA
:
purrr::list_modify(listA, listB )
$a
$a$a
[1] "a_FromB"
$a$c
[1] "c"
$b
[1] "b"
Важно
- сохранить только элемент
a
из listB
,
- не гнездовые списки,
- сохранить все остальные (непересекающиеся) элементы.
Бонус заключается в заказе нового списка таким образом, чтобы он начинался с listA
(где все элементы, которые также находятся в listB
, заменяются значениями в listB
), а затем listB
.
Я знаю, что могу написать свою собственную функцию, но это, кажется, что-то, что должно быть из коробки - особенно из purrr
.