2016-06-06 2 views
2

Это простая задача, однако я не могу найти элегантное решение для:граф блоков в серии

Учитывая это следующий вектор серии:

series=c(1,2,4,5,6,1,2,4,5,6,7,8,2,4) 

Теперь я хочу, чтобы подсчитать блоки этого вектора в том же векторе; например если у меня есть размер блока 2, я бы хотел сосчитать пары 1 & 2, 2 & 4, 4 & 5 и так далее (всего 8 уникальных блоков, если бы я сделал счет справа).

Можете ли вы придумать простой способ программирования, чтобы я получал матрицу вывода с столбцом для «уникального номера блока» и соответствующего столбца для счетчиков?

ответ

1

Одна идея состоит в том, чтобы можно использовать rollapply из zoo,

nrow(unique(rollapply(series, 2, by = 1, paste0))) 
#[1] 8 

Вы можете изменить '2', чтобы получить комбинации (размеры блоков) из 3, 4, и т.д. ...

Смежные вопросы