由此
x <- 1:10
block.size <- 3L
我想生成一个长度为3的连续且重叠的块序列,如下所示:
1,2,3
2,3,4
3,4,5
4,5,6
5,6,7
6,7,8
7,8,9
8,9,10
我找到了this nice answer个可以和角色打交道的.
我可以想出一个循环来做这件事,但如果可能的话,我肯定会更喜欢一种更简洁和矢量化的方式.这是我的观点.
block.nums <- length(x)-len+1
blocks <- vector(mode = "list", length = block.nums)
for (i in 1:block.nums) {
blocks[[i]] <- i:(i+block.size-1)
}