【问题标题】:merge elements in a list according to another list根据另一个列表合并列表中的元素
【发布时间】:2018-12-18 13:16:04
【问题描述】:

我有以下清单:

L = list()

L[[1]] = c(1,2,3)
L[[2]] = c(4,5)
L[[3]] = c(6,7,8)
L[[4]] = c(9, 10, 11, 12, 13)
L[[5]] = c(14, 15, 16)

我想根据ToUnite列表中给出的值合并L的特定元素:

ToUnite = list()
ToUnite[[1]] = c(1,2,3)
ToUnite[[2]] = c(4,5)

所以结果列表应该包含两个元素,分别对应L的c(1,2,3)和c(4,5),看起来像这样:

result = list()
result[[1]] = seq(1,8)
result[[2]] = seq(9, 16)

我怎样才能以最有效的方式做到这一点?

【问题讨论】:

    标签: r list merge


    【解决方案1】:

    我们可以用lapply遍历'ToUnite',提取'L'和unlistlist元素

    lapply(ToUnite, function(x) unlist(L[x]))
    #[[1]]
    # [1] 1 2 3 4 5 6 7 8
    
    #[[2]]
    # [1]  9 10 11 12 13 14 15 16
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多