我想获取向量中元素之间的序列。下面是一个可重现的例子。
vec <- c( 'a', letters[2:7], 'a', letters[9:14], 'a', letters[16:21] ) # sample data
ind_a <- which( grepl( 'a', vec )) # indices matching the character 'a'
ind_a <- c( ind_a, length(vec)+1 ) # concatenate the length of 'vec' + 1 with indices
ind_a
# [1] 1 8 15 22
现在,如何计算ind_a
元素之间的序列。例如,seq(from = 2, to = 7, by = 1)
以及其他相同的情况。
最好是我想知道在基础R中是否有任何函数可以完成此任务。
预期输出
# List of 3
# $ : int [1:6] 2 3 4 5 6 7
# $ : int [1:6] 9 10 11 12 13 14
# $ : int [1:6] 16 17 18 19 20 21
Map(seq, head(ind_a, -1) + 1, tail(ind_a, -1) - 1)
- Zelazny7