让我们看看示例
有100个观测日期的向量
x <- 1:100
我想将其拆分为与原始数据百分比有关的块(“ sum”应为“ 1”)。
p <- c(30, 25, 20, 15, 10)
sum(p)
“ p”是原始数据的百分比(30%等)
所需的输出是大小可变的观测数据块
result <- list(list(1:30), list(31:55), list(56:75), list(76:90), list(91:100))
当第一个块的大小大于下一个块的大小时,这对于并行处理很有用。
答案 0 :(得分:0)
我们可以使用split
result1 <- lapply(unname(split(x, rep(seq_along(p), p))), function(x) list(x))
identical(result, result1)
#[1] TRUE
或带有Map
Map(function(x, y) list(x:y), c(1, cumsum(p)[-length(p)]+1), cumsum(p) )