从向量中提取序列的多个实例

时间:2016-01-21 11:21:43

标签: r

假设我有一个数字向量vec,我想从中提取遍布各地的序列seq的几个实例。 vec中序列的起始索引是已知的。例如:

seq <- c(6, 4, 9)
vec <- c(6, 6, 4, 9, 9, 6, 4, 9, 5, 6, 6, 4, 9, 6, 4)
seq_index <- c(2, 6, 11)

我想得到的是这样的:

6, 6, 6
4, 4, 4
9, 9, 9

显然不起作用的是:

vec[seq_index:seq_index + length(seq) - 1]

我也玩过apply系列函数,例如

lapply(X = vec, FUN = `[`, cbind(seq_index, seq_index + length(seq) - 1))

也不会产生预期的结果。 我确信我在这里缺少一些基本的东西,但无法弄明白。
任何指针都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

也许你的意思是:

sapply(seq_index, function(i) vec[i:(i+length(seq)-1)])
#     [,1] [,2] [,3]
#[1,]    6    6    6
#[2,]    4    4    4
#[3,]    9    9    9