有没有办法在向量中找到一个数字的单次出现并忽略 R 中的重复项?

Is there a way to find a single occurence of a digit in a vector and ignore duplicates in R?

我有一个数字数组,我只想找到单独出现的特定数字的索引,而不是当它出现在同一数字的序列中时。 例如:

a <- c(1,2,4,5,5,8,1,2,8,8,8,4,3)

我想查找出现在索引 6 处的 SINGLE 8 的索引,我对任何其他数字都不感兴趣,也不对出现在索引 9-11 处的 8 的序列感兴趣。 在 R 中有没有聪明的方法来做到这一点?

一个选项是rle。在 vector 上应用 rle,根据 valueslengths 创建逻辑索引,然后在 rep 上用 which 换行相关逻辑 vector

which(with(rle(a), rep(values == 8 & lengths == 1, lengths)))
#[1] 6