1

次のように、2 つの整数ベクトルがあります。

c(1,5,14,24)
c(3,9,22,30)

これらから、次のように連結された各値間の範囲を含むベクトルを構築する必要があります。

c(1:3,5:9,14:22,24:30)

これを行う最善の方法は何ですか?サイトでこれに対処する別の質問が見つかりませんでした。高階関数 (Map、Fold など) を使用していくつか試してみましたが、それらはすべて 1 つのリスト引数しかとらないようです。

4

1 に答える 1

3

ここで mapply を使用して範囲を取得できます。

mySeq <- mapply(seq, A, B)


dput(mySeq)
# list(1:3, 5:9, 14:22, 24:30)

@señor が指摘しているように、範囲を単一のベクトルとして使用する場合はunlist、次も使用します。

unlist(mapply(seq, A, B))
# [1]  1  2  3  5  6  7  8  9 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30
于 2012-12-07T22:29:40.283 に答える