如何在R中合并两个列表

问题描述 投票:75回答:3

我有两个列表:

l1 = list(2, 3)
l2 = list(4)

我想要第三个列表:

list(2, 3, 4).

我如何以简单的方式做到这一点。尽管我可以在for循环中完成此操作,但是我期望一个衬套答案,或者一个内置方法。

实际上,我有一个列表:list(list(2, 3), list(2, 4), list(3, 5), list(3, 7), list(5, 6), list(5, 7), list(6, 7)).list(2, 3)list(2, 4)上计算后,我想要list(2, 3, 4)

r list
3个回答
88
投票

c可以用于列表(不仅限于矢量):

# you have
l1 = list(2, 3)
l2 = list(4)

# you want
list(2, 3, 4)
[[1]]
[1] 2

[[2]]
[1] 3

[[3]]
[1] 4

# you can do
c(l1, l2)
[[1]]
[1] 2

[[2]]
[1] 3

[[3]]
[1] 4

如果您有一个列表列表,则可以(也许)使用do.call更轻松地执行它,例如:

do.call(c, list(l1, l2))

40
投票

我们可以使用append

append(l1, l2)

它还具有在特定位置插入元素的参数。


0
投票

我一直想做同样的事情,但是将列表保留为只是一个字符串数组,所以我写了一个新代码,根据我一直在阅读的代码,虽然效率不是最高,但可以满足我的需要要做:

combineListsAsOne <-function(list1, list2){
  n <- c()
  for(x in list1){
    n<-c(n, x)
  }
  for(y in list2){
    n<-c(n, y)
  }
  return(n)
}

它只是创建一个新列表,并从两个提供的列表中添加项目以创建一个。

© www.soinside.com 2019 - 2024. All rights reserved.