gpt4 book ai didi

r - 查找向量中元素之间的序列

转载 作者:行者123 更新时间:2023-12-05 00:15:59 25 4
gpt4 key购买 nike

我想获得向量中元素之间的序列。这是一个可重现的示例。

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

最佳答案

我们通过删除最后一个和第一个观察结果从 'ind_a' 创建两个向量,然后使用 Map 获得相应元素的序列。

Map(seq, ind_a[-length(ind_a)]+1, ind_a[-1]-1)
#[[1]]
#[1] 2 3 4 5 6 7

#[[2]]
#[1] 9 10 11 12 13 14

#[[3]]
#[1] 16 17 18 19 20 21

或者正如@Zelazny7 建议的那样,可以使用 head 删除第一个和最后一个元素和 tail功能
Map(`:`, head(ind_a, -1) + 1, tail(ind_a, -1) - 1)

关于r - 查找向量中元素之间的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43211768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com