如何在R

时间:2016-04-16 14:37:06

标签: r list

我有两个清单:

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)

3 个答案:

答案 0 :(得分:72)

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))

答案 1 :(得分:32)

我们可以使用append

append(l1, l2)

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

答案 2 :(得分: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)
}

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