Для воспроизводимого примера
library(IRanges) ## Bioconductor
rle = Rle(sample(2, 100000, TRUE))
v = successiveViews(rle, rep(5, 1000), gap=10)
, а затем, возможно,
r = seqselect(rle, start(v), end(v))
matrix(as.integer(r), nrow=5)
Если вы предоставите свой собственный пример и время, то можно будет спросить, является ли это улучшением или нет.
Обновление 29 июля 2016 г.
Приведение к матрице может быть выполнено с помощью unlist()
при просмотре и вызове матрицы,
matrix(unlist(v), nrow=5)
Это работает отчасти потому, что matrix()
приводит свой первый аргумент к вектору.