1. ホーム
  2. r

[解決済み】Rで特定の間隔を持つベクトルを作成する方法は?

2022-01-27 22:10:35

質問内容

ベクターの作成について質問です。もし、私が a <- 1:10 a" は 1,2,3,4,5,6,7,8,9,10 という値を持っています。

質問は、要素間に特定の間隔を持つベクトルをどのように作成するかです。例えば、1から100までの値を持つベクトルを作成したいのですが、5間隔で数えるだけなので、5,10,15,20,...,95,100という値を持つベクトルを作成することができます。

Matlabでは、次のようなことができると思います。 1:5:100 Rでこれを行うにはどうすればよいのでしょうか?

をやってみようかな。 5*(1:20) が、もっと手っ取り早い方法はないでしょうか?(この場合、全体の長さ(100)を知ってから、間隔の大きさ(5)で割って20を求める必要があるので)。

どのように解決するのですか?

R では、同等の関数は次のようになります。 seq というオプションで使用することができます。 by :

seq(from = 5, to = 100, by = 5)
# [1]   5  10  15  20  25  30  35  40  45  50  55  60  65  70  75  80  85  90  95 100


に加えて by のような他のオプションも可能です。 length.outalong.with .

長さ.out : 例えば、0から1までの10個の数字の合計を取得したい場合。

seq(0, 1, length.out = 10)
# gives 10 equally spaced numbers from 0 to 1

along.with : 入力として与えたベクトルの長さを受け取り、1:length(input)からのベクトルを提供します。

seq(along.with=c(10,20,30))
# [1] 1 2 3

を使用する代わりに along.with オプションを使用することが推奨されます。 seq_along この場合 のドキュメントから ?seq

seq は汎用的なものであり、ここではデフォルトのメソッドのみを説明します。のクラスでディスパッチすることに注意してください。 最初 引数の名前に関係なく これは、only oneの引数で呼ばれた場合、ong.withとみなされ、意図しない結果をもたらす可能性があります。 seq_along ということになります。

seq_alongです。 の代わりに seq(along.with(.))

seq_along(c(10,20,30))
# [1] 1 2 3

お役に立てれば幸いです。