まくまくRノート
連番のベクトルを作成する (seq)
2014-12-08

コロンを使用した範囲指定により、連番要素からなるベクトルを簡単に生成することができます。

x <- 1:5  # c(1, 2, 3, 4, 5) と同様
x <- 5:1  # c(5, 4, 3, 2, 1) と同様

下記のように、ついでに演算を行うことで柔軟なベクトル生成を行えます。この例では、1, 2, 3 というシーケンスのそれぞれの要素に +1 したシーケンスを生成しています。

x <- (1:3)+1  # c(2, 3, 4) や 2:4 と同様

ちなみに、演算子 : は、+ よりも結合度が高いため、上記の例のカッコを省略しても同様に動作します。

x <- 1:3+1  #=> 2, 3, 4

上記の結果は、ちょっと直感に反するかもしれません。 演算子 + を先に評価するには、次のようにする必要があります。

x <- 1:(3+1)  #=> 1, 2, 3, 4

seq() 関数を使用すると、より柔軟にシーケンスデータを生成できます。 下記の例では、0.1 刻みのデータを作成しています。

x <- seq(from=0, to=0.5, by=0.1)  #=> 0.0, 0.1, 0.2, 0.3, 0.4, 0.5

len パラメータを使うと、何分割するかを指定することができます。 下記の例では、-π~π の範囲の値を 100 等分して得られるシーケンスデータを生成しています。

x <- seq(-pi, pi, len=100)
plot(x, sin(x))

ちなみに sin 波は plot(sin, -pi, pi) とすることで滑らかに描画できます。

2014-12-08