我无法更新列表。假设我创建了一个列表:
>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()函数创建嵌套数据结构的替代方法。
答案 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))
创建一个新列表,并将之前的list1
和c(9,10,11)
作为其元素。因此,你会看到新的索引[1]和[2]。
希望这有帮助