根据子列表索引将列表划分为不相等的子列表

时间:2016-02-11 09:11:49

标签: r

x是列表,y是列表系列的切割点,我尝试过切割和拆分(使用因子和如下),但不起作用。

x <- list (c( 1,2,3 ), c(2,3,4) , c(5,6,7) , c(3,2,1) , c(5,4,2) , c(3,2,5))
y <- c(2, 3, 4) 

期望的输出

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

[[2]]
[[1]]
[1] 5 6 7

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

1 个答案:

答案 0 :(得分:2)

我们可以尝试Map

Map(function(i, j) x[i:j], c(1, y[-1]), c(y[-length(y)], length(x)))
#[[1]]
#[[1]][[1]]
#[1] 1 2 3

#[[1]][[2]]
#[1] 2 3 4


#[[2]]
#[[2]][[1]]
#[1] 5 6 7


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

#[[3]][[2]]
#[1] 5 4 2

#[[3]][[3]]
#[1] 3 2 5