Преобразование RleViews в матрицу - PullRequest
1 голос
/ 22 ноября 2011

Существует ли более быстрый способ преобразования объекта RleViews (который содержит элементы одинаковой длины) в объект матрицы?

Я обычно использую

viewApply(x, as.vector)

Tnx!

1 Ответ

2 голосов
/ 22 ноября 2011

Для воспроизводимого примера

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() приводит свой первый аргумент к вектору.

...