Есть ли способ найти единственное вхождение цифры в векторе и игнорировать дубликаты в R? - PullRequest
2 голосов
/ 21 октября 2019

У меня есть массив чисел, и я хотел бы найти индекс конкретной цифры ТОЛЬКО, когда она встречается одна, а НЕ, когда она встречается в последовательности той же самой цифры. Например:

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

Я хотел бы найти индекс SINGLE 8, встречающийся в индексе 6, меня не интересуют ни другие цифры, ни последовательность 8, встречающиеся в индексе 9-11. Есть ли умный способ сделать это в R?

1 Ответ

4 голосов
/ 21 октября 2019

Опция будет rle. Примените rle к vector, создайте логический индекс на основе values и lengths, а затем оберните с which на rep лицензированном логическом vector

which(with(rle(a), rep(values == 8 & lengths == 1, lengths)))
#[1] 6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...