R count число экземпляров определенной целочисленной последовательности - PullRequest
0 голосов
/ 29 ноября 2018

У меня возникла проблема, которая, как я думал, будет простой.

У меня есть следующий вектор (который на самом деле является столбцом в наборе данных)

example_data <- c(1, 2, 3, 4, 5, 6, 7, 8, 5, 9, 4, 5, 4, 5, 6, 5, 3, 3, 2, 4, 5, 6, 4, 5, 6, 6, 5)

Я хочунайти количество раз, которое c(4, 5, 6) происходит, именно в этом порядке.В приведенном выше примере это будет 4 раза.

Я пытался использовать %in% и grepl(), но ни один из них не оказался успешным.Я также попытался свести вектор в одну последовательность и сопоставить таким образом, но не повезло.

Мне просто не хватает чего-то очень очевидного, поэтому любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 29 ноября 2018

Один метод состоит в том, чтобы получить lead значений с shift (из data.table) в list, затем Reduce в логическое vector после сравнения с интересующими значениями 4, 5, 6 и получить sum из TRUE элементов

library(data.table)
sum(Reduce(`&`, Map(`==`, shift(example_data, 0:2, type = 'lead'), 4:6)))
#[1] 4

или paste данные в строку и с помощью str_count из stringr получить счетчик шаблона456

1016 *
...