R 如何通过增加顺序将向量列表拆分为子列表。
我有一个n个向量的列表。我想把它分割成子列表,每个列表中向量的数量是不同的。向量的数量从一个列表依次增加到另一个列表。例如 如果我有一个包含6个向量的列表。然后,我想将其分为以下几个列表:R 如何通过增加顺序将向量列表拆分为子列表。,r,R,我有一个n个向量的列表。我想把它分割成子列表,每个列表中向量的数量是不同的。向量的数量从一个列表依次增加到另一个列表。例如 如果我有一个包含6个向量的列表。然后,我想将其分为以下几个列表: 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)) 第一个列表包含一个向量。然后,第二个列表包含2个向量,依此类推。比如说, 假设列表x如下所示: x <- list(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))
第一个列表包含一个向量。然后,第二个列表包含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))
我有类似的问题,但顺序是递减的
如何生成任意数量的向量。例如,如果我有10个或20个向量怎么办
有什么想法吗 我会把它们都放在一个列表中
MyLists <- list()
i <- 1
for (inc in 1:3){
MyLists[[inc]] <- x[i:(i+inc-1)]
i <- i+inc
}
现在我的列表[[1]]是列表1,等等。我会把它们都放在列表中
MyLists <- list()
i <- 1
for (inc in 1:3){
MyLists[[inc]] <- x[i:(i+inc-1)]
i <- i+inc
}
现在MyList[[1]]是list1,等等。基于farnsy的答案,如果您需要在全局环境中将每个列表放在单独的索引列表中,您可以这样做
#your Stater list
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))
#using a paste parse eval approach to evaluate a string
i<-1
for(inc in 1:3){
eval(parse(text =
paste0("list", inc, "<-list(",
paste0("x$",names(x)[i:(i+inc-1)],collapse = ","),
")")
))
i <- i+inc
}
根据farnsy的答案,如果您需要在全局环境中将每个列表放在单独的索引列表中,您可以这样做
#your Stater list
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))
#using a paste parse eval approach to evaluate a string
i<-1
for(inc in 1:3){
eval(parse(text =
paste0("list", inc, "<-list(",
paste0("x$",names(x)[i:(i+inc-1)],collapse = ","),
")")
))
i <- i+inc
}