将新元素添加到列表R.

时间:2015-09-25 22:28:32

标签: r list nested

我无法更新列表。假设我创建了一个列表:

>list1 <- list(c(1,2,3),c(4,5),c(6,7,8))
list1

我得到了:

[[1]]
[1] 1 2 3

[[2]]
[1] 4 5

[[3]]
[1] 6 7 8

我想追加一个额外的切片。所以我试试:

list2 <- list(list1,c(9,10,11))
list2

我得到了:

[[1]]
[[1]][[1]]
[1] 1 2 3

[[1]][[2]]
[1] 4 5

[[1]][[3]]
[1] 6 7 8


[[2]]
[1]  9 10 11    

但我真正想要的是:

[[1]]
[1] 1 2 3

[[2]]
[1] 4 5

[[3]]
[1] 6 7 8

[[4]]
[1]  9 10 11

如果有任何计算效率的解决方案,那就太棒了。此过程将重复超过> 800k切片。

我也接受使用list()函数创建嵌套数据结构的替代方法。

2 个答案:

答案 0 :(得分:2)

c(list1,list(c(9,10,11)))
# [[1]]
# [1] 1 2 3
# 
# [[2]]
# [1] 4 5
# 
# [[3]]
# [1] 6 7 8
# 
# [[4]]
# [1]  9 10 11

我们可以使用c来连接两个列表。

答案 1 :(得分:1)

你应该试试append

append(list1,list(c(9,10,11)))

这给出了

[[1]]
[1] 1 2 3

[[2]]
[1] 4 5

[[3]]
[1] 6 7 8

[[4]]
[1]  9 10 11

list(list1,c(9,10,11))

创建一个新列表,并将之前的list1c(9,10,11)作为其元素。因此,你会看到新的索引[1]和[2]。

希望这有帮助