【问题标题】:R - Merge Two member lists of a listR - 合并一个列表的两个成员列表
【发布时间】:2015-04-10 08:25:27
【问题描述】:

我有列表 l 的表格说:

R> l
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

[[4]]
[1] 4

现在,我想合并到此列表的成员列表。例如,当我说我想合并 l[[1]] 和 l[[2]] 时,我希望结果是:

R> l
[[1]]
[1] 1 2

[[2]]
[1] 3

[[3]]
[1] 4

合并两个列表时,我不需要结果中的重复元素。因此,我在两个成员列表中使用union

R> union(l[[1]], l,[[2]])
[1] 1 2

我该如何做这个合并操作?我可以使用一些预定义的功能来做到这一点吗? 谢谢

【问题讨论】:

    标签: r list merge


    【解决方案1】:

    您可以编写自己的合并如下:

    l <- as.list(1:4)
    
    mymerge <- function(mylist, element1, element2){
      mylist[[element1]] <- union(mylist[[element1]], mylist[[element2]])
      mylist[[element2]] <- NULL
      return(mylist)
    }
    
    l <- mymerge(l,1,2)
    

    结果:

    > l
    [[1]]
    [1] 1 2
    
    [[2]]
    [1] 3
    
    [[3]]
    [1] 4
    

    评论:正如akrun指出的,你也可以使用c而不是union

    【讨论】:

    • 查看 akrun 第一个解决方案后,我使用了append(list(union(l[[element1]], l[[element2]])), l[-c(element1, element2)])。但这正是我想要的。谢谢。
    猜你喜欢
    • 2018-10-25
    • 2018-05-20
    • 2011-09-26
    • 2014-01-27
    • 2012-03-20
    • 1970-01-01
    • 2015-04-01
    相关资源
    最近更新 更多