2016-08-03 4 views

Antwort

2

Wir Map verwenden können, die Sequenz zwischen den entsprechenden Werten in beiden vector s und unlist die list Ausgabe zu erhalten.

unlist(Map(`:`, startIdxes, endIdxes)) 
#[1] 1 2 5 6 7 8 9 12 13 14 15 16 17 22 23 24 25 

Die Funktion Map ist

Map 
function (f, ...) 
{ 
    f <- match.fun(f) 
    mapply(FUN = f, ..., SIMPLIFY = FALSE) 
} 

Eine weitere Option ist immer die Differenz zwischen den beiden Vektoren und fügte hinzu, mit dem Replikat von ‚startIdxes‘ mit den sequence der Differenz, verketten mit dem Original 'startIdxes' und sort.

i1 <- endIdxes - startIdxes 
sort(c(startIdxes, rep(startIdxes, i1) + sequence(i1))) 
#[1] 1 2 5 6 7 8 9 12 13 14 15 16 17 22 23 24 25 
1

können Sie verwenden mapply

unlist(mapply(seq,startIdxes,endIdxes)) 

#[1] 1 2 5 6 7 8 9 12 13 14 15 16 17 22 23 24 25 
Verwandte Themen