Вопрос о расширении последовательности

У меня есть последовательность «конечных точек», например:

c(7,10,5,11,15)     

, которую я хочу расширить до последовательности «прошедшего времени» между конечными точками, например

c ( 7 , 1,2, 3,4,5,6,7,8,9, 10 , 1,2,3,4, 5 , 1,2,3,4,5,6, 7,8,9,10, 11 , 1,2,3,4,5,6,7,8,9,10,11,12,13,14, 15 )

Какой самый эффективный способ сделать это в R? Я представляю себе сом Творческое использование функции embed , но я не могу добиться этого без использования уродливого цикла for .

Вот наивный способ сделать это:

expandSequence <- function(x) {
    out <- x[1]
    for (y in (x[-1])) {
        out <- c(out,seq(1,y))
    }
    return(out)
}

expandSequence(c(7,10,5,11,15))
7
задан Reinstate Monica - G. Simpson 3 August 2011 в 22:43
поделиться