2016-08-03 53 views

回答

2

我們可以使用Map獲得相應的值之間既vector S和unlistlist輸出序列。

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

功能Map

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

另一種選擇是要使兩個向量之間的差,以「startIdxes」與差的sequence複製添加,與原來的串聯'startIdxes'和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

您可以使用mapply

unlist(mapply(seq,startIdxes,endIdxes)) 

#[1] 1 2 5 6 7 8 9 12 13 14 15 16 17 22 23 24 25 
相關問題