假设我有一个数字向量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))
也不会产生预期的结果。
我确信我在这里缺少一些基本的东西,但无法弄明白。
任何指针都将受到高度赞赏。
答案 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