我正在尝试加入R中的两个列表,但我真的不知道该怎么做。我需要一种方法来加入to列表,方法是只添加与第一个列表中名称不同的元素,例如:
list1=list('a'=1,'b'=2,'c'=3,'d'=4,'e'=5);
list2=list('b'=10,'c'=100,'e'=98);
list3=OpErAtIoN(list1,list2)
有人得到list3是list('a'=1,'b'=10,'c'=100,'d'=4,'e'=98)
你知道怎么办?谢谢!
答案 0 :(得分:14)
这给出了与您的示例相同的结果:
modifyList(list1, list2)
答案 1 :(得分:5)
setdiff
会显示哪些列表项在“list1”中,但不在“list2”中:
> setdiff(names(list1), names(list2))
[1] "a" "d"
您可以通常的方式使用[
从“list1”中提取相关信息:
list1[setdiff(names(list1), names(list2))]
然后你可以使用c
将它们重新组合在一起:
c(list1[setdiff(names(list1), names(list2))], list2)
# $a
# [1] 1
#
# $d
# [1] 4
#
# $b
# [1] 10
#
# $c
# [1] 100
#
# $e
# [1] 98