首页 > 解决方案 > 如何通过增加顺序将向量列表拆分为子列表。

问题描述

我有一个n向量列表。我想将其拆分为子列表,其中每个列表中的向量数量不同。向量的数量从一个列表到另一个列表顺序增加。例如,如果我有一个带有6向量的列表。然后,我想将其拆分为几个列表,如下所示:

第一个列表包含一个向量。然后,第二个列表包含 2 个向量,依此类推。例如,

假设我有x如下列表:

x <- list(x1=c(1,2,3), x2=c(1,4,3), x3=c(3,4,6), x4=c(4,8,4), x5=c(4,33,4), x6=c(9,6,7))

然后,我想把它分成3个列表,

list1 = x1
list2 = list(x2, x3)
list3 = list(x4,x5, x6)

我有类似的问题(如何在 r 中按降序将向量列表拆分为小列表),但按降序排列。

我如何将它生成为任意数量的向量。例如,如果我有 10 或 20 个向量怎么办?

请问有什么想法吗?

标签: r

解决方案


我会把它们都放在一个列表中

MyLists <- list()
i <- 1
for (inc in 1:3){
  MyLists[[inc]] <- x[i:(i+inc-1)]
  i <- i+inc
}

现在MyLists[[1]]list1,等等。


推荐阅读